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 +4 -4
- data/lib/formio/client.rb +39 -19
- data/lib/formio/record.rb +9 -1
- metadata +59 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a62254bee25b872f3fdc2bebb1fcf3a32369bd50e26d64187b05253e27c801ed
|
4
|
+
data.tar.gz: 89acbf0a2b5252d7625e4cbb1c22fbacd5ed0abf5ee562690d3de269341106e9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: '0389a6f60470c24b5d69d28d798ff1ce31d08e887f9f1acde6ea88bdbb11efe9ebebae9cb8c41adc04e97b2dee3b6e09c56b3ae6725a06c9161ba919853ea105'
|
7
|
+
data.tar.gz: e14141b9ba60906d96bc38e9ad34cfaa03e6212b03a54e9c2b64dcdd44ab67daadbfebfaa3d59589e13b4b3230a2b3934c3ba88c5d88d5db8a4078e5a1c15732
|
data/lib/formio/client.rb
CHANGED
@@ -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
|
-
|
201
|
-
|
202
|
-
|
203
|
-
|
204
|
-
|
205
|
-
|
206
|
-
|
207
|
-
|
208
|
-
|
209
|
-
|
210
|
-
|
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
|
data/lib/formio/record.rb
CHANGED
@@ -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 =
|
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.
|
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.
|
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
|