ruby-cleverdome 0.0.2 → 0.1.0

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.
Files changed (2) hide show
  1. data/lib/ruby-cleverdome.rb +89 -4
  2. metadata +1 -1
@@ -14,12 +14,12 @@ module RubyCleverdome
14
14
  @sso_client = Savon.client(
15
15
  endpoint: sso_endpoint,
16
16
  namespace: 'urn:up-us:sso-service:service:v1',
17
- proxy: 'http://127.0.0.1:8888',
17
+ # proxy: 'http://127.0.0.1:8888',
18
18
  # log_level: :debug
19
19
  )
20
20
  @widgets_client = Savon.client(
21
21
  wsdl: widgets_path + '?wsdl',
22
- proxy: 'http://127.0.0.1:8888',
22
+ # proxy: 'http://127.0.0.1:8888',
23
23
  element_form_default: :unqualified,
24
24
  # log_level: :debug
25
25
  )
@@ -43,7 +43,7 @@ module RubyCleverdome
43
43
  response = @widgets_client.call(
44
44
  method,
45
45
  :attributes => { 'xmlns' => 'http://tempuri.org/' },
46
- message: { sessionID: 'EE282ABB-7BC3-42D3-BE98-9F8CE4217A12' } .merge(locals)
46
+ message: locals
47
47
  )
48
48
  end
49
49
 
@@ -65,6 +65,82 @@ module RubyCleverdome
65
65
  response.body[:upload_file_response][:upload_file_result]
66
66
  end
67
67
 
68
+ def get_templates(session_id, app_id)
69
+ resp_doc = widgets_call(
70
+ :get_document_templates,
71
+ {
72
+ 'sessionID' => session_id,
73
+ 'applicationID' => app_id
74
+ }).doc
75
+
76
+ check_body(resp_doc)
77
+
78
+ hash = resp_doc.xpath('//ReturnValue')[0]
79
+ .element_children.each_with_object(Hash.new) do |e, h|
80
+ h[Integer(e.at('ID').content)] = e.at('Name').content
81
+ end
82
+
83
+ hash
84
+ end
85
+
86
+ def get_document_template(session_id, doc_guid)
87
+ resp_doc = widgets_call(
88
+ :get_document_template,
89
+ {
90
+ 'sessionID' => session_id,
91
+ 'documentGuid' => doc_guid
92
+ }).doc
93
+
94
+ check_body(resp_doc)
95
+
96
+ return [Integer(resp_doc.xpath('//ReturnValue/ID')[0].content), resp_doc.xpath('//ReturnValue/Name')[0].content]
97
+ end
98
+
99
+ def get_template_types(session_id, app_id, template_id)
100
+ resp_doc = widgets_call(
101
+ :get_document_types,
102
+ {
103
+ 'sessionID' => session_id,
104
+ 'templateID' => template_id,
105
+ 'applicationID' => app_id
106
+ }).doc
107
+
108
+ check_body(resp_doc)
109
+
110
+ hash = resp_doc.xpath('//ReturnValue')[0]
111
+ .element_children.each_with_object(Hash.new) do |e, h|
112
+ h[Integer(e.at('ID').content)] = e.at('Name').content
113
+ end
114
+
115
+ hash
116
+ end
117
+
118
+ def get_document_type(session_id, doc_guid)
119
+ resp_doc = widgets_call(
120
+ :get_document_type,
121
+ {
122
+ 'sessionID' => session_id,
123
+ 'documentGuid' => doc_guid
124
+ }).doc
125
+
126
+ check_body(resp_doc)
127
+
128
+ return [Integer(resp_doc.xpath('//ReturnValue/ID')[0].content), resp_doc.xpath('//ReturnValue/Name')[0].content]
129
+ end
130
+
131
+ def set_document_template_type(session_id, doc_guid, template_id, type_id)
132
+ resp_doc = widgets_call(
133
+ :set_document_template,
134
+ {
135
+ 'sessionID' => session_id,
136
+ 'documentGuid' => doc_guid,
137
+ 'templateID' => template_id,
138
+ 'documentTypeID' => type_id
139
+ }).doc
140
+
141
+ check_body(resp_doc)
142
+ end
143
+
68
144
  def create_request(provider, uid)
69
145
  builder = Nokogiri::XML::Builder.new do |xml|
70
146
  xml['s'].Envelope('xmlns:s' => 'http://schemas.xmlsoap.org/soap/envelope/') {
@@ -143,6 +219,15 @@ module RubyCleverdome
143
219
  end
144
220
  end
145
221
 
146
- private :create_request, :sign_request, :saml_call, :check_resp
222
+ def check_body(resp)
223
+ resp.remove_namespaces!
224
+ status = resp.xpath('//Result')[0].content
225
+
226
+ if status.casecmp('success') != 0
227
+ raise resp.xpath('//Message')[0].content
228
+ end
229
+ end
230
+
231
+ private :create_request, :sign_request, :saml_call, :check_resp, :check_body
147
232
  end
148
233
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruby-cleverdome
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.1.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors: