ruby_api_pack_cloudways 0.1.0.beta.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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: []
|