plutora_rest 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
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: