trophonius 1.1.5 → 1.1.6
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/trophonius_error.rb +239 -231
- data/lib/trophonius_model.rb +10 -0
- data/lib/trophonius_query.rb +11 -0
- data/lib/trophonius_record.rb +11 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5d1c4de653b4f48f81cf9ea3b8ced6ffce09cd7583d2b23b0fe17de97cfa2e9d
|
4
|
+
data.tar.gz: 0c41d739871de40caabf04ed8fd2575a39320b839fe0064b6bdc616722ef0eef
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f232aaf25f6a72e0e8e2779eae555f4e467ff013e436d0cc18e2cd9510e523ecace64e0e93b9a93d14b121d3ef071954410e9649ee88434274a3e8a39eba7dc1
|
7
|
+
data.tar.gz: 2c90e1062b92195726377d4a7a07efb1a365a5916d8a35c90dbfddd12f8aaf49c2c84bf8c3954a34708d93a3abf920d9c3138be8acd32b3a749726fd2fcf7589
|
data/lib/trophonius_error.rb
CHANGED
@@ -17,11 +17,13 @@ module Trophonius
|
|
17
17
|
class FileError < StandardError; end # :nodoc:
|
18
18
|
class CommandError < StandardError; end # :nodoc:
|
19
19
|
class ConnectionError < StandardError; end # :nodoc:
|
20
|
+
class EmptyFindError < StandardError; end # :nodoc:
|
21
|
+
class ValidationError < StandardError; end # :nodoc:
|
20
22
|
|
21
23
|
##
|
22
24
|
# Throws an error corresponding to the error number
|
23
25
|
# :args: error_id, more_info
|
24
|
-
def self.throw_error(error_id, more_info = 0)
|
26
|
+
def self.throw_error(error_id, more_info = 0, layout_info = nil)
|
25
27
|
case error_id
|
26
28
|
when '-1'
|
27
29
|
raise UnknownFileMakerError.new, 'Unknown Error Ocurred'
|
@@ -45,252 +47,258 @@ module Trophonius
|
|
45
47
|
raise RecordNotFoundError.new, 'Empty result'
|
46
48
|
when '9'
|
47
49
|
raise UnauthenticatedError.new, 'User has insufficient privileges'
|
48
|
-
# when
|
49
|
-
# when
|
50
|
-
# when
|
51
|
-
# when
|
52
|
-
# when
|
53
|
-
# when
|
54
|
-
# when
|
55
|
-
# when
|
56
|
-
# when
|
57
|
-
# when
|
58
|
-
# when
|
59
|
-
# when
|
60
|
-
# when
|
61
|
-
# when
|
62
|
-
# when
|
50
|
+
# when '10'
|
51
|
+
# when '11'
|
52
|
+
# when '12'
|
53
|
+
# when '13'
|
54
|
+
# when '14'
|
55
|
+
# when '15'
|
56
|
+
# when '16'
|
57
|
+
# when '17'
|
58
|
+
# when '16'
|
59
|
+
# when '18'
|
60
|
+
# when '19'
|
61
|
+
# when '09'
|
62
|
+
# when '20'
|
63
|
+
# when '21'
|
64
|
+
# when '100'
|
63
65
|
when '101'
|
64
|
-
raise RecordNotFoundError.new,
|
66
|
+
raise RecordNotFoundError.new, 'Record #{more_info} was not found'
|
65
67
|
when '102'
|
66
|
-
|
67
|
-
|
68
|
+
if more_info != 0
|
69
|
+
raise FieldUnexistingError.new, "Following field(s) #{more_info} do not exist on layout #{layout_info}"
|
70
|
+
else
|
71
|
+
raise FieldUnexistingError.new, 'Field does not exist'
|
72
|
+
end
|
73
|
+
# when '103'
|
68
74
|
when '104'
|
69
75
|
raise ScriptUnexistingError.new, 'Script does not exist'
|
70
76
|
when '105'
|
71
77
|
raise LayoutUnexistingError.new, 'Layout does not exist'
|
72
|
-
# when
|
73
|
-
# when
|
74
|
-
# when
|
75
|
-
# when
|
76
|
-
# when
|
77
|
-
# when
|
78
|
-
# when
|
79
|
-
# when
|
80
|
-
# when
|
81
|
-
# when
|
82
|
-
# when
|
83
|
-
# when
|
84
|
-
# when
|
85
|
-
# when
|
86
|
-
# when
|
87
|
-
# when
|
78
|
+
# when '106'
|
79
|
+
# when '107'
|
80
|
+
# when '108'
|
81
|
+
# when '109'
|
82
|
+
# when '110'
|
83
|
+
# when '111'
|
84
|
+
# when '112'
|
85
|
+
# when '113'
|
86
|
+
# when '114'
|
87
|
+
# when '115'
|
88
|
+
# when '116'
|
89
|
+
# when '117'
|
90
|
+
# when '118'
|
91
|
+
# when '130'
|
92
|
+
# when '131'
|
93
|
+
# when '200'
|
88
94
|
when '201'
|
89
95
|
raise FieldNotModifiableError.new, 'Trying to write to a read-only field'
|
90
|
-
# when
|
91
|
-
# when
|
92
|
-
# when
|
93
|
-
# when
|
94
|
-
# when
|
95
|
-
# when
|
96
|
-
# when
|
97
|
-
# when
|
98
|
-
# when
|
99
|
-
# when
|
100
|
-
# when
|
101
|
-
# when
|
102
|
-
# when
|
103
|
-
# when
|
104
|
-
# when
|
105
|
-
# when
|
106
|
-
# when
|
107
|
-
# when
|
108
|
-
# when
|
109
|
-
# when
|
110
|
-
# when
|
111
|
-
# when
|
112
|
-
# when
|
113
|
-
# when
|
114
|
-
# when
|
115
|
-
|
96
|
+
# when '202'
|
97
|
+
# when '203'
|
98
|
+
# when '204'
|
99
|
+
# when '205'
|
100
|
+
# when '206'
|
101
|
+
# when '207'
|
102
|
+
# when '208'
|
103
|
+
# when '209'
|
104
|
+
# when '210'
|
105
|
+
# when '211'
|
106
|
+
# when '212'
|
107
|
+
# when '213'
|
108
|
+
# when '214'
|
109
|
+
# when '215'
|
110
|
+
# when '216'
|
111
|
+
# when '217'
|
112
|
+
# when '218'
|
113
|
+
# when '300'
|
114
|
+
# when '301'
|
115
|
+
# when '302'
|
116
|
+
# when '303'
|
117
|
+
# when '304'
|
118
|
+
# when '306'
|
119
|
+
# when '307'
|
120
|
+
# when '308'
|
121
|
+
when '400'
|
122
|
+
raise EmptyFindError.new, ' Find criteria are empty'
|
116
123
|
when '401'
|
117
|
-
raise RecordNotFoundError.new,
|
118
|
-
# when
|
124
|
+
raise RecordNotFoundError.new, 'Record #{more_info} was not found'
|
125
|
+
# when '402'
|
119
126
|
when '403'
|
120
127
|
raise UnauthenticatedError.new, 'You are unauthenticated to perform this request'
|
121
|
-
# when
|
122
|
-
# when
|
123
|
-
# when
|
124
|
-
# when
|
125
|
-
# when
|
126
|
-
# when
|
127
|
-
# when
|
128
|
-
# when
|
129
|
-
# when
|
130
|
-
# when
|
131
|
-
# when
|
132
|
-
# when
|
133
|
-
# when
|
134
|
-
# when
|
135
|
-
|
136
|
-
|
137
|
-
# when
|
138
|
-
# when
|
139
|
-
# when
|
140
|
-
# when
|
141
|
-
# when
|
142
|
-
# when
|
143
|
-
# when
|
144
|
-
# when
|
145
|
-
# when
|
146
|
-
# when
|
147
|
-
# when
|
148
|
-
# when
|
149
|
-
# when
|
150
|
-
# when
|
151
|
-
# when
|
152
|
-
# when
|
153
|
-
# when
|
154
|
-
# when
|
155
|
-
# when
|
156
|
-
# when
|
157
|
-
# when
|
158
|
-
# when
|
159
|
-
# when
|
160
|
-
# when
|
161
|
-
# when
|
162
|
-
# when
|
163
|
-
# when
|
164
|
-
# when
|
165
|
-
# when
|
166
|
-
# when
|
167
|
-
# when
|
168
|
-
# when
|
169
|
-
# when
|
170
|
-
# when
|
171
|
-
# when
|
172
|
-
# when
|
173
|
-
# when
|
174
|
-
# when
|
175
|
-
# when
|
176
|
-
# when
|
177
|
-
# when
|
178
|
-
# when
|
179
|
-
# when
|
180
|
-
# when
|
181
|
-
# when
|
182
|
-
# when
|
183
|
-
# when
|
184
|
-
# when
|
185
|
-
# when
|
186
|
-
# when
|
187
|
-
# when
|
188
|
-
# when
|
189
|
-
# when
|
190
|
-
# when
|
191
|
-
# when
|
192
|
-
# when
|
193
|
-
# when
|
194
|
-
# when
|
195
|
-
# when
|
196
|
-
# when
|
197
|
-
# when
|
198
|
-
# when
|
199
|
-
# when
|
200
|
-
# when
|
201
|
-
# when
|
202
|
-
# when
|
203
|
-
# when
|
204
|
-
# when
|
205
|
-
# when
|
206
|
-
# when
|
207
|
-
# when
|
208
|
-
# when
|
209
|
-
# when
|
210
|
-
# when
|
211
|
-
# when
|
212
|
-
# when
|
213
|
-
# when
|
214
|
-
# when
|
215
|
-
# when
|
216
|
-
# when
|
217
|
-
# when
|
218
|
-
# when
|
219
|
-
# when
|
220
|
-
# when
|
221
|
-
# when
|
222
|
-
# when
|
128
|
+
# when '404'
|
129
|
+
# when '405'
|
130
|
+
# when '406'
|
131
|
+
# when '407'
|
132
|
+
# when '408'
|
133
|
+
# when '409'
|
134
|
+
# when '410'
|
135
|
+
# when '412'
|
136
|
+
# when '413'
|
137
|
+
# when '414'
|
138
|
+
# when '415'
|
139
|
+
# when '416'
|
140
|
+
# when '417'
|
141
|
+
# when '418'
|
142
|
+
when '500'
|
143
|
+
raise ValidationError.new, 'Data value does not meet validation entry options (hint make sure your date values are formatted as MM/DD/YYYY)'
|
144
|
+
# when '501'
|
145
|
+
# when '502'
|
146
|
+
# when '503'
|
147
|
+
# when '504'
|
148
|
+
# when '505'
|
149
|
+
# when '506'
|
150
|
+
# when '507'
|
151
|
+
# when '508'
|
152
|
+
# when '509'
|
153
|
+
# when '510'
|
154
|
+
# when '511'
|
155
|
+
# when '512'
|
156
|
+
# when '513'
|
157
|
+
# when '600'
|
158
|
+
# when '601'
|
159
|
+
# when '602'
|
160
|
+
# when '603'
|
161
|
+
# when '700'
|
162
|
+
# when '706'
|
163
|
+
# when '707'
|
164
|
+
# when '708'
|
165
|
+
# when '711'
|
166
|
+
# when '714'
|
167
|
+
# when '715'
|
168
|
+
# when '716'
|
169
|
+
# when '717'
|
170
|
+
# when '718'
|
171
|
+
# when '719'
|
172
|
+
# when '720'
|
173
|
+
# when '721'
|
174
|
+
# when '722'
|
175
|
+
# when '723'
|
176
|
+
# when '724'
|
177
|
+
# when '725'
|
178
|
+
# when '726'
|
179
|
+
# when '727'
|
180
|
+
# when '729'
|
181
|
+
# when '730'
|
182
|
+
# when '731'
|
183
|
+
# when '732'
|
184
|
+
# when '733'
|
185
|
+
# when '734'
|
186
|
+
# when '735'
|
187
|
+
# when '736'
|
188
|
+
# when '738'
|
189
|
+
# when '800'
|
190
|
+
# when '801'
|
191
|
+
# when '802'
|
192
|
+
# when '803'
|
193
|
+
# when '804'
|
194
|
+
# when '805'
|
195
|
+
# when '806'
|
196
|
+
# when '807'
|
197
|
+
# when '808'
|
198
|
+
# when '809'
|
199
|
+
# when '810'
|
200
|
+
# when '811'
|
201
|
+
# when '812'
|
202
|
+
# when '813'
|
203
|
+
# when '814'
|
204
|
+
# when '815'
|
205
|
+
# when '816'
|
206
|
+
# when '817'
|
207
|
+
# when '819'
|
208
|
+
# when '820'
|
209
|
+
# when '821'
|
210
|
+
# when '822'
|
211
|
+
# when '823'
|
212
|
+
# when '824'
|
213
|
+
# when '825'
|
214
|
+
# when '826'
|
215
|
+
# when '827'
|
216
|
+
# when '850'
|
217
|
+
# when '851'
|
218
|
+
# when '852'
|
219
|
+
# when '853'
|
220
|
+
# when '900'
|
221
|
+
# when '901'
|
222
|
+
# when '902'
|
223
|
+
# when '903'
|
224
|
+
# when '905'
|
225
|
+
# when '906'
|
226
|
+
# when '920'
|
227
|
+
# when '921'
|
228
|
+
# when '922'
|
229
|
+
# when '923'
|
230
|
+
# when '951'
|
223
231
|
when '952'
|
224
232
|
raise InvalidTokenError.new, 'Could not retrieve a valid token from FileMaker, check your FileMaker server'
|
225
|
-
# when
|
226
|
-
# when
|
227
|
-
# when
|
228
|
-
# when
|
229
|
-
# when
|
230
|
-
# when
|
231
|
-
# when
|
232
|
-
# when
|
233
|
-
# when
|
234
|
-
# when
|
235
|
-
# when
|
236
|
-
# when
|
237
|
-
# when
|
238
|
-
# when
|
239
|
-
# when
|
240
|
-
# when
|
241
|
-
# when
|
242
|
-
# when
|
243
|
-
# when
|
244
|
-
# when
|
245
|
-
# when
|
246
|
-
# when
|
247
|
-
# when
|
248
|
-
# when
|
249
|
-
# when
|
250
|
-
# when
|
251
|
-
# when
|
252
|
-
# when
|
253
|
-
# when
|
254
|
-
# when
|
255
|
-
# when
|
256
|
-
# when
|
257
|
-
# when
|
258
|
-
# when
|
259
|
-
# when
|
260
|
-
# when
|
261
|
-
# when
|
262
|
-
# when
|
263
|
-
# when
|
264
|
-
# when
|
265
|
-
# when
|
266
|
-
# when
|
267
|
-
# when
|
268
|
-
# when
|
269
|
-
# when
|
270
|
-
# when
|
271
|
-
# when
|
272
|
-
# when
|
273
|
-
# when
|
274
|
-
# when
|
275
|
-
# when
|
276
|
-
# when
|
277
|
-
# when
|
278
|
-
# when
|
279
|
-
# when
|
280
|
-
# when
|
281
|
-
# when
|
282
|
-
# when
|
283
|
-
# when
|
284
|
-
# when
|
285
|
-
# when
|
286
|
-
# when
|
287
|
-
# when
|
233
|
+
# when '954'
|
234
|
+
# when '955'
|
235
|
+
# when '956'
|
236
|
+
# when '957'
|
237
|
+
# when '958'
|
238
|
+
# when '959'
|
239
|
+
# when '960'
|
240
|
+
# when '1200'
|
241
|
+
# when '1201'
|
242
|
+
# when '1202'
|
243
|
+
# when '1203'
|
244
|
+
# when '1204'
|
245
|
+
# when '1205'
|
246
|
+
# when '1206'
|
247
|
+
# when '1207'
|
248
|
+
# when '1208'
|
249
|
+
# when '1209'
|
250
|
+
# when '1210'
|
251
|
+
# when '1211'
|
252
|
+
# when '1212'
|
253
|
+
# when '1213'
|
254
|
+
# when '1214'
|
255
|
+
# when '1215'
|
256
|
+
# when '1216'
|
257
|
+
# when '1217'
|
258
|
+
# when '1218'
|
259
|
+
# when '1219'
|
260
|
+
# when '1220'
|
261
|
+
# when '1221'
|
262
|
+
# when '1222'
|
263
|
+
# when '1223'
|
264
|
+
# when '1224'
|
265
|
+
# when '1225'
|
266
|
+
# when '1300'
|
267
|
+
# when '1301'
|
268
|
+
# when '1400'
|
269
|
+
# when '1401'
|
270
|
+
# when '1402'
|
271
|
+
# when '1403'
|
272
|
+
# when '1404'
|
273
|
+
# when '1405'
|
274
|
+
# when '1406'
|
275
|
+
# when '1407'
|
276
|
+
# when '1408'
|
277
|
+
# when '1409'
|
278
|
+
# when '1413'
|
279
|
+
# when '1414'
|
280
|
+
# when '1450'
|
281
|
+
# when '1451'
|
282
|
+
# when '1501'
|
283
|
+
# when '1502'
|
284
|
+
# when '1503'
|
285
|
+
# when '1504'
|
286
|
+
# when '1505'
|
287
|
+
# when '1506'
|
288
|
+
# when '1507'
|
289
|
+
# when '1550'
|
290
|
+
# when '1551'
|
291
|
+
# when '1626'
|
292
|
+
# when '1627'
|
293
|
+
# when '1628'
|
294
|
+
# when '1629'
|
295
|
+
# when '1630'
|
288
296
|
when '1631'
|
289
297
|
raise ConnectionError.new, 'An error occurred while attempting to connect to the FileMaker server'
|
290
|
-
# when
|
291
|
-
# when
|
298
|
+
# when '1632'
|
299
|
+
# when '1633'
|
292
300
|
else
|
293
|
-
raise ResponseNotYetImplementedError.new,
|
301
|
+
raise ResponseNotYetImplementedError.new, 'An unknown error has been encountered: err_no was #{error_id}'
|
294
302
|
end
|
295
303
|
end
|
296
304
|
end
|
data/lib/trophonius_model.rb
CHANGED
@@ -146,6 +146,16 @@ module Trophonius
|
|
146
146
|
body = "{\"fieldData\": #{new_field_data.to_json}}"
|
147
147
|
response = Request.make_request(url, "Bearer #{Request.get_token}", "post", body)
|
148
148
|
if response["messages"][0]["code"] != "0"
|
149
|
+
if response["messages"][0]["code"] == "102"
|
150
|
+
results = Request.retrieve_first(layout_name)
|
151
|
+
if results["messages"][0]["code"] != "0"
|
152
|
+
Error.throw_error("102")
|
153
|
+
else
|
154
|
+
r_results = results["response"]["data"]
|
155
|
+
ret_val = r_results.empty? ? Error.throw_error("102") : r_results[0]['fieldData']
|
156
|
+
Error.throw_error("102", (new_field_data.keys.map(&:downcase) - ret_val.keys.map(&:downcase)).flatten.join(', '), layout_name)
|
157
|
+
end
|
158
|
+
end
|
149
159
|
Error.throw_error(response["messages"][0]["code"])
|
150
160
|
else
|
151
161
|
url = URI("http#{Trophonius.config.ssl == true ? "s" : ""}://#{Trophonius.config.host}/fmi/data/v1/databases/#{Trophonius.config.database}/layouts/#{layout_name}/records/#{response["response"]["recordId"]}")
|
data/lib/trophonius_query.rb
CHANGED
@@ -88,6 +88,17 @@ module Trophonius
|
|
88
88
|
RecordSet.new(@trophonius_model.layout_name, @trophonius_model.non_modifiable_fields).send(method, *args, &block)
|
89
89
|
return
|
90
90
|
else
|
91
|
+
if response["messages"][0]["code"] == "102"
|
92
|
+
results = Request.retrieve_first(@trophonius_model.layout_name)
|
93
|
+
if results["messages"][0]["code"] != "0"
|
94
|
+
Error.throw_error("102")
|
95
|
+
else
|
96
|
+
r_results = results["response"]["data"]
|
97
|
+
ret_val = r_results.empty? ? Error.throw_error("102") : r_results[0]['fieldData']
|
98
|
+
query_keys = new_field_data.map { |q| q.keys.map(&:downcase) }.uniq
|
99
|
+
Error.throw_error("102", (query_keys - ret_val.keys.map(&:downcase)).flatten.join(', '), @trophonius_model.layout_name)
|
100
|
+
end
|
101
|
+
end
|
91
102
|
Error.throw_error(response['messages'][0]['code'])
|
92
103
|
end
|
93
104
|
else
|
data/lib/trophonius_record.rb
CHANGED
@@ -68,7 +68,17 @@ module Trophonius
|
|
68
68
|
body = "{\"fieldData\": #{fieldData.to_json}}"
|
69
69
|
response = Request.make_request(url, "Bearer #{Request.get_token}", 'patch', body)
|
70
70
|
if response['messages'][0]['code'] != '0'
|
71
|
-
|
71
|
+
if response["messages"][0]["code"] == "102"
|
72
|
+
results = Request.retrieve_first(layout_name)
|
73
|
+
if results["messages"][0]["code"] != "0"
|
74
|
+
Error.throw_error("102")
|
75
|
+
else
|
76
|
+
r_results = results["response"]["data"]
|
77
|
+
ret_val = r_results.empty? ? Error.throw_error("102") : r_results[0]['fieldData']
|
78
|
+
Error.throw_error("102", (fieldData.keys.map(&:downcase) - ret_val.keys.map(&:downcase)).flatten.join(', '), layout_name)
|
79
|
+
end
|
80
|
+
end
|
81
|
+
Error.throw_error(response["messages"][0]["code"])
|
72
82
|
else
|
73
83
|
true
|
74
84
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: trophonius
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.1.
|
4
|
+
version: 1.1.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Kempen Automatisering
|
@@ -87,7 +87,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
87
87
|
- !ruby/object:Gem::Version
|
88
88
|
version: '0'
|
89
89
|
requirements: []
|
90
|
-
|
90
|
+
rubyforge_project:
|
91
|
+
rubygems_version: 2.7.9
|
91
92
|
signing_key:
|
92
93
|
specification_version: 4
|
93
94
|
summary: Link between Ruby (on Rails) and FileMaker.
|