ruby_api_pack_cloudways 0.1.0.beta.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/README.md +17 -0
- data/Rakefile +6 -0
- data/lib/ruby_api_pack_cloudways.rb +6 -0
- data/lib/ruby_api_pack_cloudways/main/cw_client.rb +27 -0
- data/lib/ruby_api_pack_cloudways/main/cw_connect.rb +30 -0
- data/lib/ruby_api_pack_cloudways/main/cw_token.rb +44 -0
- data/lib/ruby_api_pack_cloudways/version.rb +3 -0
- metadata +153 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 84ed368537251509cd33c2cf69f7f7d8af19f7e6607fabe0baab58e513d643d1
|
4
|
+
data.tar.gz: 2c1508fd079522587b62e19dd5c673503bdd249eadb8c339478f640ce1304b0e
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 8bb21d5433f72efd774473b7218b093a0eedc3b0ec11507dae1a59e5e1920aabb4c5e5f0be51edc97db9315d12441569cfa526e25284b7aa9f7284bdaa7b97b2
|
7
|
+
data.tar.gz: 14f7dfaed2d7a8c0300ca0edb66ef3a0679d58110cc2be667be62edc359d3e2d40bdcd1902f3f0929cf3f9a8f2d2d9f62c99d685029ef5a2853348b688416661
|
data/README.md
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
### Ruby API Wrapper - Cloudways
|
2
|
+
|
3
|
+
Early Release. Only token auth working.
|
4
|
+
|
5
|
+
Easily connect to your Cloudways account through their API.
|
6
|
+
|
7
|
+
* Secure OAuth Cloudways API Authentication
|
8
|
+
|
9
|
+
#### Step 1 - Add to your application
|
10
|
+
|
11
|
+
gem 'ruby_api_pack_cloudways'
|
12
|
+
bundle install
|
13
|
+
|
14
|
+
#### Variables
|
15
|
+
|
16
|
+
PHCDEV_API_CLOUDWAYS_EMAIL = Your Cloudways Email Login
|
17
|
+
PHCDEV_API_CLOUDWAYS_KEY = API Key Provided by Cloudways
|
data/Rakefile
ADDED
@@ -0,0 +1,27 @@
|
|
1
|
+
module RubyApiPackCloudways
|
2
|
+
module Main
|
3
|
+
class CwClient
|
4
|
+
|
5
|
+
# Load Required Gems
|
6
|
+
require "faraday"
|
7
|
+
require "faraday_middleware"
|
8
|
+
require "oj"
|
9
|
+
|
10
|
+
# Variables
|
11
|
+
CW_API_URL = "https://api.cloudways.com/api/v1"
|
12
|
+
CW_API_PATH_TOKEN = "/oauth/access_token"
|
13
|
+
CW_API_PATH = "/server"
|
14
|
+
CW_API_EMAIL = ENV["PHCDEV_API_CLOUDWAYS_EMAIL"]
|
15
|
+
CW_API_KEY = ENV["PHCDEV_API_CLOUDWAYS_KEY"]
|
16
|
+
|
17
|
+
# Load Main Files
|
18
|
+
require_relative "cw_token"
|
19
|
+
require_relative "cw_connect"
|
20
|
+
|
21
|
+
# Get Token Response
|
22
|
+
cw_api_get_token = CwToken.new(CW_API_URL, CW_API_PATH_TOKEN, CW_API_EMAIL, CW_API_KEY)
|
23
|
+
cw_api_connection = CwConnect.new(CW_API_URL, CW_API_PATH, cw_api_get_token.cw_api_token)
|
24
|
+
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
module RubyApiPackCloudways
|
2
|
+
module Main
|
3
|
+
class CwConnect
|
4
|
+
|
5
|
+
# Connection - Attributes
|
6
|
+
attr_accessor :cw_api_url_base, :cw_api_path
|
7
|
+
|
8
|
+
# Connection - Init
|
9
|
+
def initialize(cw_api_url_base, cw_api_path, cw_api_token)
|
10
|
+
@cw_api_url_base = cw_api_url_base
|
11
|
+
@cw_api_path = cw_api_path
|
12
|
+
@cw_api_token = cw_api_token
|
13
|
+
end
|
14
|
+
|
15
|
+
# Connection - API Connection Call
|
16
|
+
def cloudways_api_connection
|
17
|
+
|
18
|
+
cw_api_connetion_response = Faraday.new(url: @cw_api_url_base) do |cw_api_connection|
|
19
|
+
cw_api_connection.request :oauth2, @cw_api_token, token_type: :bearer
|
20
|
+
cw_api_connection.response :logger
|
21
|
+
cw_api_connection.adapter Faraday.default_adapter
|
22
|
+
end
|
23
|
+
|
24
|
+
return cw_api_connetion_response.get @cw_api_url_base + @cw_api_path
|
25
|
+
|
26
|
+
end
|
27
|
+
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
@@ -0,0 +1,44 @@
|
|
1
|
+
module RubyApiPackCloudways
|
2
|
+
module Main
|
3
|
+
class CwToken
|
4
|
+
|
5
|
+
# Cloudways - Token - Init
|
6
|
+
def initialize(cw_api_url_base, cw_url_path_auth, cw_user_email, cw_user_key)
|
7
|
+
@cw_api_url_base = cw_api_url_base
|
8
|
+
@cw_url_path_auth = cw_url_path_auth
|
9
|
+
@cw_user_email = cw_user_email
|
10
|
+
@cw_user_key = cw_user_key
|
11
|
+
end
|
12
|
+
|
13
|
+
# Cloudways - Token - Connection
|
14
|
+
def cw_api_token_connection
|
15
|
+
|
16
|
+
# Cloudways - Token - Connection via Faraday
|
17
|
+
Faraday.new url: @cw_api_url_base + @cw_url_path_auth do |cw_token_connection|
|
18
|
+
cw_token_connection.request :url_encoded
|
19
|
+
cw_token_connection.response :logger
|
20
|
+
cw_token_connection.adapter Faraday.default_adapter
|
21
|
+
end
|
22
|
+
|
23
|
+
end
|
24
|
+
|
25
|
+
# Cloudways - Token - Request
|
26
|
+
def cw_api_token
|
27
|
+
|
28
|
+
# Cloudways - Token - Request From Above Connection Method
|
29
|
+
cloudways_token_request = cw_api_token_connection.post do |cw_token_request|
|
30
|
+
cw_token_request.headers["Content-Type"] = "application/x-www-form-urlencoded"
|
31
|
+
cw_token_request.body = {
|
32
|
+
email: URI::encode(@cw_user_email),
|
33
|
+
api_key: URI::encode(@cw_user_key)
|
34
|
+
}
|
35
|
+
end
|
36
|
+
|
37
|
+
# Cloudways - Token - Request Isolate and Get Token from Response via OJ
|
38
|
+
return @cw_apit_token = Oj.load(cloudways_token_request.body)["access_token"]
|
39
|
+
|
40
|
+
end
|
41
|
+
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
metadata
ADDED
@@ -0,0 +1,153 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: ruby_api_pack_cloudways
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0.beta.3
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- PHCDevworks
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2021-05-25 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: bundler
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: rake
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: oj
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '3.11'
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '3.11'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: httparty
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - "~>"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: 0.18.1
|
62
|
+
type: :runtime
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - "~>"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: 0.18.1
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: faraday
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - "~>"
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '1.3'
|
76
|
+
type: :runtime
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - "~>"
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '1.3'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: faraday_middleware
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - "~>"
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '1.0'
|
90
|
+
type: :runtime
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - "~>"
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '1.0'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: rspec
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - "~>"
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '3.0'
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - "~>"
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '3.0'
|
111
|
+
description: Ruby API wrapper to use with Cloudways API. Can be used alone or part
|
112
|
+
of the larger PHCDevworks Ruby API Pack.
|
113
|
+
email:
|
114
|
+
- imfo@phcdevworks.com
|
115
|
+
executables: []
|
116
|
+
extensions: []
|
117
|
+
extra_rdoc_files: []
|
118
|
+
files:
|
119
|
+
- README.md
|
120
|
+
- Rakefile
|
121
|
+
- lib/ruby_api_pack_cloudways.rb
|
122
|
+
- lib/ruby_api_pack_cloudways/main/cw_client.rb
|
123
|
+
- lib/ruby_api_pack_cloudways/main/cw_connect.rb
|
124
|
+
- lib/ruby_api_pack_cloudways/main/cw_token.rb
|
125
|
+
- lib/ruby_api_pack_cloudways/version.rb
|
126
|
+
homepage: https://phcdevworks.com/
|
127
|
+
licenses:
|
128
|
+
- MIT
|
129
|
+
metadata:
|
130
|
+
allowed_push_host: https://rubygems.org/
|
131
|
+
homepage_uri: https://phcdevworks.com/
|
132
|
+
source_code_uri: https://github.com/phcdevworks/universal_api_wrapper_pack
|
133
|
+
changelog_uri: https://github.com/phcdevworks/universal_api_wrapper_pack/releases
|
134
|
+
post_install_message:
|
135
|
+
rdoc_options: []
|
136
|
+
require_paths:
|
137
|
+
- lib
|
138
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
139
|
+
requirements:
|
140
|
+
- - ">="
|
141
|
+
- !ruby/object:Gem::Version
|
142
|
+
version: '0'
|
143
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
144
|
+
requirements:
|
145
|
+
- - ">"
|
146
|
+
- !ruby/object:Gem::Version
|
147
|
+
version: 1.3.1
|
148
|
+
requirements: []
|
149
|
+
rubygems_version: 3.0.3
|
150
|
+
signing_key:
|
151
|
+
specification_version: 4
|
152
|
+
summary: API Pack for Cloudways
|
153
|
+
test_files: []
|