plutora_rest 0.0.1

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 ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 61ebd77b777f7857b8be2e99bbd7bf3097f5344d
4
+ data.tar.gz: 64a00d8ed35d9215d775b2860b44b5a59279fc49
5
+ SHA512:
6
+ metadata.gz: 7f9b3c783f2343d4ed660e839d0aedbf6efff45e23bc611041b69f56e9b1438b64389de935b69bdb60d5e3c484e23db7d9a57032642cd7045b531e4afebf806f
7
+ data.tar.gz: 149ebc1e0e15f91f24feeff16dd6140d9965db5b5fde1452f6ed69906dbcde782296efb8fd81112d974354eb4afe834be32d2b19d3915976865258f506ab9663
@@ -0,0 +1,65 @@
1
+ require "plutora_rest/version"
2
+ require "rubygems"
3
+ require 'rest-client'
4
+ require 'json'
5
+ require 'active_support/core_ext'
6
+ require 'pp'
7
+ require 'plutora_rest/sections/changes.rb'
8
+ require 'plutora_rest/sections/lookupfields.rb'
9
+ require 'plutora_rest/sections/releases.rb'
10
+
11
+ module PlutoraRest
12
+ class Calls
13
+
14
+ attr_reader :token
15
+
16
+ #---- Initialize ----
17
+ def initialize(opts = {})
18
+ #- Use to initilze the object and connect to plutora
19
+ # => token
20
+ #
21
+ oauth_url = opts[:oauthURL] || 'https://usoauth.plutora.com/oauth/token'
22
+
23
+ params = {'grant_type' => 'password',
24
+ 'client_id' => opts[:client_id],
25
+ 'client_secret' => opts[:client_secret],
26
+ 'username' => opts[:username],
27
+ 'password' => opts[:password]}
28
+
29
+ headers = {'Accept' => 'application/json',
30
+ 'Content-Type' => 'application/x-www-form-urlencoded'}
31
+
32
+ @base_url= opts[:baseURL] || "https://usapi.plutora.com/"
33
+
34
+ rConnect=plutora_post({:url => oauth_url, :params => params, :headers => headers})
35
+ rConnect=JSON.parse(rConnect)
36
+ @token=rConnect['access_token']
37
+ return @token
38
+ end
39
+
40
+ #---- POST REST Call ----
41
+ def plutora_post(opts)
42
+ resp=RestClient.post(opts[:url], opts[:params], opts[:headers])
43
+ return resp
44
+ end
45
+
46
+ #---- Get REST Call ----
47
+ def plutora_get(opts)
48
+ resp=RestClient.get(opts[:url], opts[:headers])
49
+ return resp
50
+ end
51
+
52
+ #---- PUT REST Call ----
53
+ def plutora_put(opts)
54
+ resp=RestClient.put(opts[:url], opts[:params], opts[:headers])
55
+ return resp
56
+ end
57
+
58
+ #---- Format Response into JSON ----
59
+ def formatResp(opts)
60
+ json_convert=Hash.from_xml(opts[:xml]).to_json
61
+ return JSON.parse(json_convert)
62
+ end
63
+
64
+ end
65
+ end
@@ -0,0 +1,268 @@
1
+ # ----------------------------------------------
2
+ # - Section: Changes
3
+ # ----------------------------------------------
4
+
5
+ module PlutoraRest
6
+ class Calls
7
+
8
+ #--------------------------
9
+ #-------- GET CALL --------
10
+ #--------------------------
11
+
12
+ #---- Get Changes ----
13
+ def get_Changes(opts = {})
14
+ token=opts[:token] || @token
15
+
16
+ url = "#{@base_url}Changes"
17
+
18
+ headers = {'Authorization' => 'Bearer ' + token}
19
+
20
+ resp=plutora_get({:url => url, :headers => headers})
21
+ resp=formatResp({:xml => resp})
22
+ return resp
23
+ end
24
+
25
+ #---- Get Changes By Id ----
26
+ def get_ChangesById(opts = {})
27
+ if opts[:id] == nil
28
+ raise "Changes By Id requires an ID value!"
29
+ end
30
+
31
+ url = "#{@base_url}Changes/#{opts[:id]}"
32
+
33
+ headers = {'Authorization' => 'Bearer ' + (opts[:token] == nil ? @token : opts[:token])}
34
+
35
+ resp=formatResp({:xml => plutora_get({:url => url, :headers => headers})})
36
+ return resp
37
+ end
38
+
39
+ #---- Get Changes By Id Additional Informations ----
40
+ def get_ChangesById_AdditionalInformation(opts = {})
41
+ if opts[:id] == nil
42
+ raise "Changes By Id - Additional Information requires an ID value!"
43
+ end
44
+
45
+ url = "#{@base_url}Changes/#{opts[:id]}/additionalInformation"
46
+
47
+ headers = {'Authorization' => "Bearer #{(opts[:token] == nil ? @token : opts[:token])}"}
48
+
49
+ resp=formatResp({:xml => plutora_get({:url => url, :headers => headers})})
50
+ return resp
51
+ end
52
+
53
+ #-------------------------------
54
+ #---------- PUT CALLS ----------
55
+ #-------------------------------
56
+
57
+ #---- Update Changes By ID ----
58
+ def update_ChangesById(opts = {})
59
+ if opts[:id] == nil
60
+ raise "Changes By Id requires an ID value!"
61
+ end
62
+ if opts[:params] == nil
63
+ raise "Changes By Id requires Parameters!"
64
+ end
65
+
66
+ url = "#{@base_url}Changes/#{opts[:id]}"
67
+
68
+ headers = {
69
+ 'Authorization' => "Bearer #{(opts[:token] == nil ? @token : opts[:token])}",
70
+ 'Accept' => 'application/json',
71
+ 'Content-Type' => 'application/x-www-form-urlencoded'
72
+ #'Content-Type' => 'application/json'
73
+ }
74
+
75
+ resp=plutora_put({:url => url, :params => opts[:params], :headers => headers})
76
+ return (resp.code == 204 ? true : false)
77
+ end
78
+
79
+ #---- Update Changes By Id Additional Informations ----
80
+ def update_ChangesById_AdditionalInformation(opts = {})
81
+ if opts[:id] == nil
82
+ raise "Changes By Id - Additional Information requires an ID value!"
83
+ end
84
+ if opts[:params] == nil
85
+ raise "Changes By Id - Additional Information requires Parameters!"
86
+ end
87
+
88
+ url = "#{@base_url}Changes/#{opts[:id]}/additionalInformation"
89
+
90
+ headers = {
91
+ 'Authorization' => "Bearer #{(opts[:token] == nil ? @token : opts[:token])}",
92
+ 'Content-Type' => 'application/json'
93
+ }
94
+
95
+ resp=plutora_put({:url => url, :params => opts[:params], :headers => headers})
96
+ return (resp.code == 204 ? true : false)
97
+ end
98
+
99
+ #--------------------------------
100
+ #---------- POST CALLS ----------
101
+ #--------------------------------
102
+
103
+ #---- Create Change ----
104
+ #TODO: Validate functionality
105
+ def create_Change(opts = {})
106
+ if opts[:params] == nil
107
+ raise "Create Change requires Parameters"
108
+ end
109
+
110
+ url = "#{@base_url}Changes"
111
+
112
+ headers = {
113
+ 'Authorization' => "Bearer #{(opts[:token] == nil ? @token : opts[:token])}",
114
+ 'Accept' => 'application/json',
115
+ 'Content-Type' => 'application/x-www-form-urlencoded'
116
+ }
117
+
118
+ resp=plutora_post({:url => url, :params => opts[:params], :headers => headers})
119
+ return (resp.code == 204 ? true : false)
120
+ end
121
+
122
+ #-----------------------------
123
+ #---------- Helpers ----------
124
+ #-----------------------------
125
+
126
+ #---- Returns the Additional Information (Id) Value
127
+ def get_AdditionalInformation_FieldID(opts = {})
128
+ if opts[:fieldname] == nil
129
+ raise "get Additional Information (Field ID) options variable 'fieldname' requires a value."
130
+ end
131
+
132
+ sId = nil
133
+
134
+ if opts[:data].class == Hash
135
+ if opts[:data]['Name'] == opts[:fieldname]
136
+ sID = opts[:data]['Id']
137
+ end
138
+ else
139
+ opts[:data].each do |fields|
140
+ if fields['Name'] == opts[:fieldname]
141
+ sID = fields['Id']
142
+ end
143
+ end
144
+ end
145
+
146
+ return (sID == nil ? false : sID)
147
+ end
148
+
149
+ #---- Returns the Additional Information (fields) Value
150
+ def get_AdditionalInformation_FieldValue(opts = {})
151
+ if opts[:fieldname] == nil
152
+ raise "get Additional Information (Field Value) options variable 'fieldname' requires a value."
153
+ end
154
+
155
+ sValue=nil
156
+
157
+ if opts[:data].class == Hash
158
+ if opts[:data]['Name'] == opts[:fieldname]
159
+ case opts[:data]['DataType']
160
+ when 'DatePicker'
161
+ if !opts[:data]['Date'].class == Hash
162
+ sValue = opts[:data]['Date']
163
+ end
164
+ when 'ListField'
165
+ if opts[:data]['ListItem'].class == Hash
166
+ if opts[:data]['ListItem'].size > 1
167
+ sValue opts[:data]['ListItem']['value']
168
+ end
169
+ end
170
+ when 'FreeText'
171
+ if opts[:data]['Text'].class == String
172
+ sValue = opts[:data]['Text']
173
+ end
174
+ when 'TimePicker'
175
+ if !opts[:data]['Time'].class == Hash
176
+ sValue = opts[:data]['Time']
177
+ end
178
+ when 'Number'
179
+ if opts[:data]['Number'].class == String
180
+ sValue = opts[:data]['Number']
181
+ end
182
+ when 'DateTimePicker'
183
+ if !opts[:data]['DateTime'].class == Hash
184
+ sValue = opts[:data]['DateTime']
185
+ end
186
+ when 'ListSelect'
187
+ if !opts[:data]['MultilListItem'].class == Hash
188
+ sValue = opts[:data]['MultilListItem']
189
+ end
190
+ else
191
+ sValue=nil
192
+ end
193
+ end
194
+ else
195
+ opts[:data].each do |items|
196
+ if items['Name'] == opts[:fieldname]
197
+ case items['DataType']
198
+ when 'DatePicker'
199
+ if !items['Date'].class == Hash
200
+ sValue = items['Date']
201
+ end
202
+ when 'ListField'
203
+ if items['ListItem'].class == Hash
204
+ if items['ListItem'].size > 1
205
+ sValue = items['ListItem']['Value']
206
+ end
207
+ end
208
+ when 'FreeText'
209
+ if items['Text'].class == String
210
+ sValue = items['Text']
211
+ end
212
+ when 'TimePicker'
213
+ if !items['Time'].class == Hash
214
+ sValue = items['Time']
215
+ end
216
+ when 'Number'
217
+ if items['Number'].class == String
218
+ sValue = items['Number']
219
+ end
220
+ when 'DateTimePicker'
221
+ if !items['DateTime'].class == Hash
222
+ sValue = items['DateTime']
223
+ end
224
+ when 'ListSelect'
225
+ if !items['MultilListItem'].class == Hash
226
+ sValue = items['MultilListItem']
227
+ end
228
+ else
229
+ sValue=nil
230
+ end
231
+ break
232
+ end
233
+ end
234
+ end
235
+
236
+ return (sValue == nil ? false : sValue)
237
+ end
238
+
239
+ #---- Returns the System names of the indicated System Role Type
240
+ def get_Systems_ByRoleType(opts = {})
241
+ if opts[:roletype] == nil
242
+ raise "get Systems By Role Type requires a Role Type value."
243
+ end
244
+
245
+ sSystems=''
246
+
247
+ if opts[:data].class == Hash
248
+ if opts[:data]['SystemRoleType'] == opts[:roletype]
249
+ sSystems= opts[:data]['System']
250
+ end
251
+ else
252
+ opts[:data].each do |systems|
253
+ if systems['SystemRoleType'] == opts[:roletype]
254
+ sSystems.concat(";#{systems['System']}")
255
+ end
256
+ end
257
+ sSystems = sSystems[1..-1]
258
+ end
259
+
260
+ if sSystems == ''
261
+ return false
262
+ else
263
+ return sSystems
264
+ end
265
+ end
266
+
267
+ end
268
+ end
@@ -0,0 +1,61 @@
1
+ # ----------------------------------------------
2
+ # - Section: Lookup Fields
3
+ # ----------------------------------------------
4
+
5
+ module PlutoraRest
6
+ class Calls
7
+
8
+ #--------------------------
9
+ #-------- GET CALL --------
10
+ #--------------------------
11
+
12
+ #---- Get Lookupfields by Type ----
13
+ def get_lookupfields_byType(opts = {})
14
+ if opts[:type] == nil
15
+ raise "Get Lookup Fields, Type value is required!"
16
+ end
17
+
18
+ url = "#{@base_url}lookupfields/#{opts[:type]}"
19
+
20
+ headers = {'Authorization' => 'Bearer ' + (opts[:token] == nil ? @token : opts[:token])}
21
+
22
+ resp=formatResp({:xml => plutora_get({:url => url, :headers => headers})})
23
+ return resp
24
+ end
25
+
26
+ #-----------------------------
27
+ #---------- Helpers ----------
28
+ #-----------------------------
29
+
30
+ #---- Return Lookup Field Id by Type ----
31
+ def get_LookupField_ValueID(opts = {})
32
+ if opts[:type] == nil
33
+ raise "Get Lookup Field Value Id requires a Type value."
34
+ end
35
+ if opts[:value] == nil
36
+ raise "Get Lookup Field Value Id requires a Value to lookup."
37
+ end
38
+
39
+ sId = ''
40
+
41
+ if opts[:data].class == Hash
42
+ if opts[:data]['Type'] == opts[:type]
43
+ if opts[:data]['Value'] == opts[:value]
44
+ sID = opts[:data]['Id']
45
+ end
46
+ end
47
+ else
48
+ opts[:data].each do |fields|
49
+ if fields['Type'] == opts[:type]
50
+ if fields['Value'] == opts[:value]
51
+ sID = fields['Id']
52
+ end
53
+ end
54
+ end
55
+ end
56
+
57
+ return (sID == '' ? false : sID)
58
+ end
59
+
60
+ end
61
+ end
@@ -0,0 +1,18 @@
1
+ # ----------------------------------------------
2
+ # - Page: <page name/title>
3
+ # ----------------------------------------------
4
+
5
+ module MrkSfdcSe
6
+ class Driver
7
+
8
+ def click_<name>
9
+ # -- <description>
10
+ @driver.find_element(:id => '<id value>').click
11
+ end
12
+
13
+ def navigate_<name>
14
+
15
+ end
16
+
17
+ end
18
+ end
@@ -0,0 +1,40 @@
1
+ # ----------------------------------------------
2
+ # - Section: Releases
3
+ # ----------------------------------------------
4
+
5
+ module PlutoraRest
6
+ class Calls
7
+
8
+ #--------------------------
9
+ #-------- GET CALL --------
10
+ #--------------------------
11
+
12
+ #---- Get Releases ----
13
+ def get_Releases(opts = {})
14
+ token=opts[:token] || @token
15
+
16
+ url = "#{@base_url}releases"
17
+
18
+ headers = {'Authorization' => 'Bearer ' + token}
19
+
20
+ resp=plutora_get({:url => url, :headers => headers})
21
+ resp=formatResp({:xml => resp})
22
+ return resp
23
+ end
24
+
25
+ #---- Get Releases By Id ----
26
+ def get_ReleasesById(opts = {})
27
+ if opts[:id] == nil
28
+ raise "Releases By Id requires an ID value!"
29
+ end
30
+
31
+ url = "#{@base_url}releases/#{opts[:id]}"
32
+
33
+ headers = {'Authorization' => 'Bearer ' + (opts[:token] == nil ? @token : opts[:token])}
34
+
35
+ resp=formatResp({:xml => plutora_get({:url => url, :headers => headers})})
36
+ return resp
37
+ end
38
+
39
+ end
40
+ end
@@ -0,0 +1,3 @@
1
+ module PlutoraRest
2
+ VERSION = "0.0.1"
3
+ end
metadata ADDED
@@ -0,0 +1,124 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: plutora_rest
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - ProjectYeti
8
+ - Knowlesr
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2015-03-19 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: bundler
16
+ requirement: !ruby/object:Gem::Requirement
17
+ requirements:
18
+ - - "~>"
19
+ - !ruby/object:Gem::Version
20
+ version: '1.6'
21
+ type: :development
22
+ prerelease: false
23
+ version_requirements: !ruby/object:Gem::Requirement
24
+ requirements:
25
+ - - "~>"
26
+ - !ruby/object:Gem::Version
27
+ version: '1.6'
28
+ - !ruby/object:Gem::Dependency
29
+ name: rake
30
+ requirement: !ruby/object:Gem::Requirement
31
+ requirements:
32
+ - - "~>"
33
+ - !ruby/object:Gem::Version
34
+ version: '0'
35
+ type: :development
36
+ prerelease: false
37
+ version_requirements: !ruby/object:Gem::Requirement
38
+ requirements:
39
+ - - "~>"
40
+ - !ruby/object:Gem::Version
41
+ version: '0'
42
+ - !ruby/object:Gem::Dependency
43
+ name: rest-client
44
+ requirement: !ruby/object:Gem::Requirement
45
+ requirements:
46
+ - - "~>"
47
+ - !ruby/object:Gem::Version
48
+ version: '0'
49
+ type: :development
50
+ prerelease: false
51
+ version_requirements: !ruby/object:Gem::Requirement
52
+ requirements:
53
+ - - "~>"
54
+ - !ruby/object:Gem::Version
55
+ version: '0'
56
+ - !ruby/object:Gem::Dependency
57
+ name: json
58
+ requirement: !ruby/object:Gem::Requirement
59
+ requirements:
60
+ - - "~>"
61
+ - !ruby/object:Gem::Version
62
+ version: '0'
63
+ type: :development
64
+ prerelease: false
65
+ version_requirements: !ruby/object:Gem::Requirement
66
+ requirements:
67
+ - - "~>"
68
+ - !ruby/object:Gem::Version
69
+ version: '0'
70
+ - !ruby/object:Gem::Dependency
71
+ name: active_support/core_ext
72
+ requirement: !ruby/object:Gem::Requirement
73
+ requirements:
74
+ - - "~>"
75
+ - !ruby/object:Gem::Version
76
+ version: '0'
77
+ type: :development
78
+ prerelease: false
79
+ version_requirements: !ruby/object:Gem::Requirement
80
+ requirements:
81
+ - - "~>"
82
+ - !ruby/object:Gem::Version
83
+ version: '0'
84
+ description: This is a specialized utility for the Plutora platform, that utilizes
85
+ the REST Call functions for Plutora
86
+ email:
87
+ - rmopy@merck.com
88
+ - knowlesr@rampwebs.com
89
+ executables: []
90
+ extensions: []
91
+ extra_rdoc_files: []
92
+ files:
93
+ - lib/plutora_rest.rb
94
+ - lib/plutora_rest/sections/changes.rb
95
+ - lib/plutora_rest/sections/lookupfields.rb
96
+ - lib/plutora_rest/sections/page_template.rb
97
+ - lib/plutora_rest/sections/releases.rb
98
+ - lib/plutora_rest/version.rb
99
+ homepage: http://rubygems.org/gems/plutora_rest
100
+ licenses:
101
+ - MIT
102
+ metadata: {}
103
+ post_install_message:
104
+ rdoc_options: []
105
+ require_paths:
106
+ - lib
107
+ required_ruby_version: !ruby/object:Gem::Requirement
108
+ requirements:
109
+ - - ">="
110
+ - !ruby/object:Gem::Version
111
+ version: '0'
112
+ required_rubygems_version: !ruby/object:Gem::Requirement
113
+ requirements:
114
+ - - ">="
115
+ - !ruby/object:Gem::Version
116
+ version: '0'
117
+ requirements: []
118
+ rubyforge_project:
119
+ rubygems_version: 2.2.2
120
+ signing_key:
121
+ specification_version: 4
122
+ summary: A specialized utility for the Plutora platform
123
+ test_files: []
124
+ has_rdoc: