formio 0.0.3 → 0.0.4

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 02e723660a1d929c17bcce26839fac021b49bab899eb1313e4e77c72ea6aa0df
4
- data.tar.gz: ba45f9dad1f78441598eeacfdc4a85ef679d87c4507b8c51485c1cb0978ec620
3
+ metadata.gz: a62254bee25b872f3fdc2bebb1fcf3a32369bd50e26d64187b05253e27c801ed
4
+ data.tar.gz: 89acbf0a2b5252d7625e4cbb1c22fbacd5ed0abf5ee562690d3de269341106e9
5
5
  SHA512:
6
- metadata.gz: 9f05f279f1ad25a23a1173b7a165b19f42c3deb60d2fc65fa1737e9b7c30c235960accb1a90d36b2d0c9b8516ae70cfd4b77c4a159324df91eddc4676f636cfc
7
- data.tar.gz: 867a03cdc1fb9addadd66a40fd45e9597bb93c58c6c6cb6813ebf9cb0c1dd2b08877be2e3d802ef316bd2427d900aedc374d21133c795248abe7ddd2ae7af49c
6
+ metadata.gz: '0389a6f60470c24b5d69d28d798ff1ce31d08e887f9f1acde6ea88bdbb11efe9ebebae9cb8c41adc04e97b2dee3b6e09c56b3ae6725a06c9161ba919853ea105'
7
+ data.tar.gz: e14141b9ba60906d96bc38e9ad34cfaa03e6212b03a54e9c2b64dcdd44ab67daadbfebfaa3d59589e13b4b3230a2b3934c3ba88c5d88d5db8a4078e5a1c15732
@@ -36,13 +36,13 @@ module Formio
36
36
  end
37
37
  end
38
38
 
39
- def update(record)
39
+ def update(record, max_depth: 2)
40
40
  raise "Must supply a formio form" unless record.is_a?(Record)
41
41
  response = connection.put do |req|
42
42
  req.url "/#{record.form_name}/submission/#{record.id}"
43
43
  req.url "/form/#{record.form_id}/submission/#{record.id}" if record.form_id
44
44
  set_headers(req)
45
- req.body = record.to_json
45
+ req.body = compact_formio_hash(record.formio_hash, max_depth).to_json
46
46
  end
47
47
 
48
48
  return update(record) if response.status == 502
@@ -51,6 +51,10 @@ module Formio
51
51
  else
52
52
  parse_response(response.body)['details'].map { |x| x['message'] }
53
53
  end
54
+
55
+ rescue Net::OpenTimeout
56
+ binding.pry
57
+ retry
54
58
  end
55
59
 
56
60
  def find_by_id(form, submission_id)
@@ -176,6 +180,9 @@ module Formio
176
180
  @connection ||= Faraday::Connection.new(project_url,
177
181
  ssl: { verify: true }
178
182
  ) do |builder|
183
+ require 'faraday_curl'
184
+ # require 'faraday-detailed_logger'
185
+ require 'faraday-cookie_jar'
179
186
  # builder.request :multipart
180
187
  # builder.use ::FaradayMiddleware::ParseJson, content_type: 'application/json'
181
188
  # builder.request :url_encoded
@@ -197,27 +204,40 @@ module Formio
197
204
  def login
198
205
  @auth_token ||= begin
199
206
  return unless email
200
- Rails.cache.fetch("formio_login_" + email, expires_in: 12.hours) do
201
- formio_conn = Faraday::Connection.new("https://formio.form.io", ssl: { verify: true })
202
-
203
- login_response = formio_conn.post do |req|
204
- req.url "/user/login"
205
- req.headers['Content-Type'] = 'application/json'
206
- req.headers['Accept'] = 'application/json'
207
- req.body = {
208
- data: {
209
- email: email,
210
- password: password
211
- }
212
- }.to_json
213
- end
214
- login_response.headers['x-jwt-token']
207
+ formio_conn = Faraday::Connection.new("https://formio.form.io", ssl: { verify: true })
208
+
209
+ login_response = formio_conn.post do |req|
210
+ req.url "/user/login"
211
+ req.headers['Content-Type'] = 'application/json'
212
+ req.headers['Accept'] = 'application/json'
213
+ req.body = {
214
+ data: {
215
+ email: email,
216
+ password: password
217
+ }
218
+ }.to_json
215
219
  end
220
+ login_response.headers['x-jwt-token']
216
221
  end
217
222
  end
218
223
  alias auth_token login
219
224
 
220
- private
221
225
  attr_reader :email, :password, :project_url
226
+
227
+ def compact_formio_hash(data, max_level=2)
228
+ return unless data.is_a?(Hash) || data.is_a?(Array)
229
+ data.each do |k,v|
230
+ if max_level <= 0
231
+ data.delete k
232
+ else
233
+ if(v.is_a?(Hash))
234
+ compact_formio_hash(v, max_level - 1)
235
+ end
236
+ if(v.is_a?(Array))
237
+ v.each { |elem| compact_formio_hash(elem, max_level) }
238
+ end
239
+ end
240
+ end.compact
241
+ end
222
242
  end
223
- end
243
+ end
@@ -16,6 +16,10 @@ module Formio
16
16
  end
17
17
  end
18
18
 
19
+ def present?
20
+ true
21
+ end
22
+
19
23
  def to_json
20
24
  formio_hash.to_json
21
25
  end
@@ -46,11 +50,15 @@ module Formio
46
50
  def initialize
47
51
  @_id = @id = nil
48
52
  @form_id = nil
49
- @formio_hash = nil
53
+ @formio_hash = {data: {}}
50
54
  @form_name = nil
51
55
  @created_at = nil
52
56
  @updated_at = nil
53
57
  end
58
+
59
+ def present?
60
+ false
61
+ end
54
62
  end
55
63
  end
56
64
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: formio
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jonathan Frias
@@ -9,7 +9,63 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
  date: 2019-03-04 00:00:00.000000000 Z
12
- dependencies: []
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: faraday
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: faraday-cookie_jar
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: faraday_curl
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: faraday-detailed_logger
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
13
69
  description: A Ruby adapter for the form.io platform
14
70
  email: jonathan.frias1@gmail.com
15
71
  executables: []
@@ -40,7 +96,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
40
96
  - !ruby/object:Gem::Version
41
97
  version: '0'
42
98
  requirements: []
43
- rubygems_version: 3.0.2
99
+ rubygems_version: 3.0.3
44
100
  signing_key:
45
101
  specification_version: 4
46
102
  summary: A Ruby adapter for the form.io platform