trophonius 1.4.5.5 → 2.1.5

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.
@@ -1,511 +0,0 @@
1
- require 'json'
2
- require 'trophonius_config'
3
- require 'trophonius_record'
4
- require 'trophonius_recordset'
5
- require 'trophonius_query'
6
- require 'trophonius_error'
7
-
8
- module Trophonius
9
- # This class will retrieve the records from the FileMaker database and build a RecordSet filled with Record objects. One Record object represents a record in FileMaker.
10
- class Trophonius::Model
11
- attr_reader :configuration
12
- attr_accessor :current_query
13
-
14
- def initialize(config:)
15
- @configuration = config
16
- @offset = ''
17
- @limit = ''
18
- end
19
-
20
- ##
21
- # Sets up the configuration for the model.
22
- #
23
- # @param [Hash] configuration: the hash containing the config to setup the model correctly.
24
- # configuration = {layout_name: "theFileMakerLayoutForThisModel", non_modifiable_fields: ["an", "array", "containing", "calculation_fields", "etc."]}
25
- def self.config(configuration)
26
- @configuration ||= Configuration.new
27
- @configuration.layout_name = configuration[:layout_name]
28
- @configuration.non_modifiable_fields = configuration[:non_modifiable_fields]
29
- @configuration.all_fields = {}
30
- @configuration.translations = {}
31
- @configuration.has_many_relations = {}
32
- @configuration.belongs_to_relations = {}
33
- @offset = ''
34
- @limit = ''
35
- end
36
-
37
- ##
38
- # Add a belongs to relationship.
39
- #
40
- # @param [Symbol] model_name: the name of the model to build a relation with
41
- # @param [String] primary_key: the name of the field containing the primary to build the relation over
42
- # @param [String] foreign_key: the name of the field containing the primary to build the relation over
43
- def self.belongs_to(model_name, primary_key:, foreign_key:)
44
- @configuration.belongs_to_relations.merge!({ model_name => { primary_key: primary_key, foreign_key: foreign_key } })
45
- end
46
-
47
- ##
48
- # Add a has many relationship.
49
- #
50
- # @param [Symbol] model_name: the name of the model to build a relation with
51
- # @param [String] primary_key: the name of the field containing the primary to build the relation over
52
- # @param [String] foreign_key: the name of the field containing the primary to build the relation over
53
- def self.has_many(model_name, primary_key:, foreign_key:)
54
- @configuration.has_many_relations.merge!({ model_name => { primary_key: primary_key, foreign_key: foreign_key } })
55
- end
56
-
57
- ##
58
- # Limits the found record set.
59
- #
60
- # @param [Integer] page: number of current page
61
- # @param [Integer] limit: number of records retreived
62
- #
63
- # @return [Trophonius::Model] Self
64
- def self.paginate(page, limit)
65
- @offset = (((page * limit) - limit) + 1).to_s
66
- @limit = limit.to_s
67
- self
68
- end
69
-
70
- ##
71
- # Returns the FileMaker layout this Model corresponds to
72
- #
73
- # @return [String] layout name of the model
74
- def self.layout_name
75
- @configuration.layout_name
76
- end
77
-
78
- ##
79
- # Returns the Hash containing the related parent models
80
- #
81
- # @return [Hash] child models
82
- def self.has_many_relations
83
- @configuration.has_many_relations
84
- end
85
-
86
- ##
87
- # Returns the Hash containing the related parent models
88
- #
89
- # @return [Hash] parent models
90
- def self.belongs_to_relations
91
- @configuration.belongs_to_relations
92
- end
93
-
94
- ##
95
- # Returns the fields that FileMaker won't allow us to modify
96
- #
97
- # @return [[Array]] fields that FileMaker won't allow us to modify
98
- def self.non_modifiable_fields
99
- @configuration.non_modifiable_fields
100
- end
101
-
102
- ##
103
- # Returns the translations of the fields
104
- #
105
- # @return [Hash] translations of the fields Rails -> FileMaker
106
- def self.translations
107
- @configuration.translations
108
- end
109
-
110
- ##
111
- # creates Rails -> FileMaker field translations by requesting the first record
112
- #
113
- # @return [Hash] translations of the fields Rails -> FileMaker
114
- def self.create_translations
115
- if Trophonius.config.fm_18
116
- field_names = Trophonius::Request.get_layout_field_names(layout_name)
117
- field_names.each do |field|
118
- @configuration.translations.merge!(
119
- { ActiveSupport::Inflector.parameterize(ActiveSupport::Inflector.underscore(field.to_s), separator: '_').downcase.to_s => field.to_s }
120
- )
121
- end
122
- else
123
- first
124
- end
125
- @configuration.translations
126
- end
127
-
128
- def self.method_missing(method, *args)
129
- new_instance = Trophonius::Model.new(config: @configuration)
130
- new_instance.current_query = Trophonius::Query.new(trophonius_model: self, limit: @limit, offset: @offset)
131
- args << new_instance
132
- new_instance.current_query.send(method, args) if new_instance.current_query.respond_to?(method)
133
- end
134
-
135
- def method_missing(method, *args, &block)
136
- if @current_query.respond_to?(method)
137
- args << self
138
- @current_query.send(method, args)
139
- elsif @current_query.response.respond_to?(method)
140
- ret_val = @current_query.run_query(method, *args, &block)
141
- @limit = ''
142
- @offset = ''
143
- ret_val
144
- end
145
- end
146
-
147
- ##
148
- # Finds all records in FileMaker corresponding to the requested query
149
- # @param [Hash] fieldData: the data to find
150
- #
151
- # @return [Trophonius::Model] new instance of the model
152
- def self.where(field_data)
153
- new_instance = Trophonius::Model.new(config: @configuration)
154
- new_instance.current_query = Trophonius::Query.new(trophonius_model: self, limit: @limit, offset: @offset)
155
- new_instance.current_query.build_query[0].merge!(field_data)
156
- new_instance
157
- end
158
-
159
- ##
160
- # Finds all records in FileMaker corresponding to the requested query
161
- # This method is created to enable where chaining
162
- #
163
- # @param [Hash] fieldData: the data to find
164
- #
165
- # @return [Trophonius::Model] new instance of the model
166
- def where(field_data)
167
- @current_query.build_query[0].merge!(field_data)
168
- self
169
- end
170
-
171
- ##
172
- # Creates and saves a record in FileMaker
173
- #
174
- # @param [Hash] fieldData: the fields to fill with the data
175
- #
176
- # @return [Record] the created record
177
- # Model.create(fieldOne: "Data")
178
- def self.create(field_data, portalData: {})
179
- uri = URI::RFC2396_Parser.new
180
- url =
181
- URI(
182
- uri.escape(
183
- "http#{Trophonius.config.ssl == true ? 's' : ''}://#{Trophonius.config.host}/fmi/data/v1/databases/#{
184
- Trophonius.config.database
185
- }/layouts/#{layout_name}/records"
186
- )
187
- )
188
- new_field_data = {}
189
- create_translations if @configuration.translations.keys.empty?
190
- field_data.keys.each do |k|
191
- if @configuration.translations.keys.include?(k.to_s)
192
- new_field_data.merge!({ @configuration.translations[k.to_s].to_s => field_data[k] })
193
- else
194
- new_field_data.merge!({ k.to_s => field_data[k] })
195
- end
196
- end
197
-
198
- new_portal_data = {}
199
- portalData.each do |portal_name, portal_values|
200
- new_portal_data.merge!(
201
- portal_name =>
202
- portal_values.map do |record|
203
- record.each_with_object({}) do |(key, value), new_hash|
204
- new_hash["#{portal_name}::#{key}"] = value
205
- end
206
- end
207
- )
208
- end
209
-
210
- body =
211
- if new_portal_data == {}
212
- "{\"fieldData\": #{new_field_data.to_json} }"
213
- else
214
- "{\"fieldData\": #{new_field_data.to_json}, \"portalData\": #{new_portal_data.to_json}}"
215
- end
216
- response = Request.make_request(url, "Bearer #{Request.get_token}", 'post', body)
217
- if response['messages'][0]['code'] == '0'
218
- url =
219
- URI(
220
- uri.escape(
221
- "http#{Trophonius.config.ssl == true ? 's' : ''}://#{Trophonius.config.host}/fmi/data/v1/databases/#{
222
- Trophonius.config.database
223
- }/layouts/#{layout_name}/records/#{response['response']['recordId']}"
224
- )
225
- )
226
- ret_val = build_result(Request.make_request(url, "Bearer #{Request.get_token}", 'get', '{}')['response']['data'][0])
227
- ret_val.send(:define_singleton_method, 'result_count') { 1 }
228
- ret_val
229
- else
230
- if response['messages'][0]['code'] == '102'
231
- results = Request.retrieve_first(layout_name)
232
- if results['messages'][0]['code'] == '0'
233
- r_results = results['response']['data']
234
- ret_val = r_results.empty? ? Error.throw_error('102') : r_results[0]['fieldData']
235
- Error.throw_error('102', (new_field_data.keys.map(&:downcase) - ret_val.keys.map(&:downcase)).flatten.join(', '), layout_name)
236
- else
237
- Error.throw_error('102')
238
- end
239
- end
240
- Error.throw_error(response['messages'][0]['code'])
241
- end
242
- end
243
-
244
- ##
245
- # Finds and returns the first Record containing fitting the find request
246
- #
247
- # @param [Hash] fieldData: the data to find
248
- #
249
- # @return [Record] a Record object that correspond to FileMaker record fitting the find request
250
- # Model.find_by(fieldOne: "Data")
251
- def self.find_by(field_data)
252
- uri = URI::RFC2396_Parser.new
253
- url =
254
- URI(
255
- uri.escape(
256
- "http#{Trophonius.config.ssl == true ? 's' : ''}://#{Trophonius.config.host}/fmi/data/v1/databases/#{
257
- Trophonius.config.database
258
- }/layouts/#{layout_name}/_find?_limit=1"
259
- )
260
- )
261
- new_field_data = {}
262
- create_translations if @configuration.translations.keys.empty?
263
- field_data.keys.each do |k|
264
- if @configuration.translations.keys.include?(k.to_s)
265
- new_field_data.merge!({ @configuration.translations[k.to_s].to_s => field_data[k] })
266
- else
267
- new_field_data.merge!({ k.to_s => field_data[k] })
268
- end
269
- end
270
- body = { query: [new_field_data], limit: '100000' }.to_json
271
- response = Request.make_request(url, "Bearer #{Request.get_token}", 'post', body)
272
-
273
- if response['messages'][0]['code'] == '0'
274
- r_results = response['response']['data']
275
- ret_val = RecordSet.new(layout_name, non_modifiable_fields)
276
- r_results.each do |r|
277
- hash = build_result(r)
278
- ret_val << hash
279
- end
280
- ret_val.first
281
- else
282
- if response['messages'][0]['code'] == '101' || response['messages'][0]['code'] == '401'
283
- return RecordSet.new(layout_name, non_modifiable_fields)
284
- end
285
-
286
- Error.throw_error(response['messages'][0]['code'])
287
- end
288
- end
289
-
290
- ##
291
- # Finds and returns a Record corresponding to the record_id
292
- #
293
- # @param [Integer] record_id: the record id to retrieve from FileMaker
294
- #
295
- # @return [Record] the record
296
- def self.find(record_id)
297
- uri = URI::RFC2396_Parser.new
298
- url =
299
- URI(
300
- uri.escape(
301
- "http#{Trophonius.config.ssl == true ? 's' : ''}://#{Trophonius.config.host}/fmi/data/v1/databases/#{
302
- Trophonius.config.database
303
- }/layouts/#{layout_name}/records/#{record_id}"
304
- )
305
- )
306
- response = Request.make_request(url, "Bearer #{Request.get_token}", 'get', '{}')
307
- if response['messages'][0]['code'] == '0'
308
- ret_val = build_result(response['response']['data'][0])
309
- ret_val.send(:define_singleton_method, 'result_count') { 1 }
310
- ret_val
311
- else
312
- Error.throw_error(response['messages'][0]['code'], record_id)
313
- end
314
- end
315
-
316
- ##
317
- # Deletes a record from FileMaker
318
- #
319
- # @param [Integer] record_id: the record id to retrieve from FileMaker
320
- #
321
- # @return [Boolean] True if the delete was successful
322
- def self.delete(record_id)
323
- uri = URI::RFC2396_Parser.new
324
- url =
325
- URI(
326
- uri.escape(
327
- "http#{Trophonius.config.ssl == true ? 's' : ''}://#{Trophonius.config.host}/fmi/data/v1/databases/#{
328
- Trophonius.config.database
329
- }/layouts/#{layout_name}/records/#{record_id}"
330
- )
331
- )
332
- response = Request.make_request(url, "Bearer #{Request.get_token}", 'delete', '{}')
333
- if response['messages'][0]['code'] == '0'
334
- true
335
- else
336
- Error.throw_error(response['messages'][0]['code'])
337
- end
338
- end
339
-
340
- ##
341
- # Edits a record in FileMaker
342
- #
343
- # @param [Integer] record_id: the record id to edit in FileMaker
344
- #
345
- # @param [Hash] fieldData: A hash containing the fields to edit and the new data to fill them with
346
- #
347
- # @return [Boolean] True if the delete was successful
348
- def self.edit(record_id, field_data)
349
- uri = URI::RFC2396_Parser.new
350
- url =
351
- URI(
352
- uri.escape(
353
- "http#{Trophonius.config.ssl == true ? 's' : ''}://#{Trophonius.config.host}/fmi/data/v1/databases/#{
354
- Trophonius.config.database
355
- }/layouts/#{layout_name}/records/#{record_id}"
356
- )
357
- )
358
- new_field_data = {}
359
- create_translations if @configuration.translations.keys.empty?
360
- field_data.keys.each do |k|
361
- if @configuration.translations.keys.include?(k.to_s)
362
- new_field_data.merge!({ @configuration.translations[k.to_s].to_s => field_data[k] })
363
- else
364
- new_field_data.merge!({ k.to_s => field_data[k] })
365
- end
366
- end
367
- body = "{\"fieldData\": #{new_field_data.to_json}}"
368
- response = Request.make_request(url, "Bearer #{Request.get_token}", 'patch', body)
369
- response['messages'][0]['code'] == '0' ? true : Error.throw_error(response['messages'][0]['code'])
370
- end
371
-
372
- ##
373
- # Builds the resulting Record
374
- #
375
- # @param [JSON] result: the HTTP result from FileMaker
376
- #
377
- # @return [Record] A Record with singleton_methods for the fields where possible
378
- def self.build_result(result)
379
- hash = Trophonius::Record.new(name)
380
- hash.record_id = result['recordId']
381
- hash.layout_name = layout_name
382
- hash.model_name = name
383
-
384
- result['fieldData'].keys.each do |key|
385
- # unless key[/\s/] || key[/\W/]
386
- @configuration.translations.merge!(
387
- { ActiveSupport::Inflector.parameterize(ActiveSupport::Inflector.underscore(key.to_s), separator: '_').downcase.to_s => key.to_s }
388
- )
389
- hash.send(:define_singleton_method, ActiveSupport::Inflector.parameterize(ActiveSupport::Inflector.underscore(key.to_s), separator: '_')) do
390
- hash[key]
391
- end
392
- unless non_modifiable_fields&.include?(key)
393
- @configuration.all_fields.merge!(
394
- ActiveSupport::Inflector.parameterize(ActiveSupport::Inflector.underscore(key.to_s), separator: '_').downcase =>
395
- ActiveSupport::Inflector.parameterize(ActiveSupport::Inflector.underscore(key.to_s), separator: '_')
396
- )
397
- hash.send(
398
- :define_singleton_method,
399
- "#{ActiveSupport::Inflector.parameterize(ActiveSupport::Inflector.underscore(key.to_s), separator: '_')}="
400
- ) do |new_val|
401
- hash[key] = new_val
402
- hash.modifiable_fields[key] = new_val
403
- hash.modified_fields[key] = new_val
404
- end
405
- end
406
- # end
407
- hash.merge!({ key => result['fieldData'][key] })
408
- hash.modifiable_fields.merge!({ key => result['fieldData'][key] }) unless non_modifiable_fields&.include?(key)
409
- end
410
- result['portalData'].keys.each do |key|
411
- unless key[/\s/] || key[/\W/]
412
- hash.send(:define_singleton_method, ActiveSupport::Inflector.parameterize(ActiveSupport::Inflector.underscore(key.to_s), separator: '_')) do
413
- hash[key]
414
- end
415
- end
416
- result['portalData'][key].each do |inner_hash|
417
- inner_hash.keys.each do |inner_key|
418
- inner_method =
419
- ActiveSupport::Inflector.parameterize(ActiveSupport::Inflector.underscore(inner_key.gsub(/\w+::/, '').to_s), separator: '_')
420
- unless inner_method[/\s/] || inner_method[/\W/]
421
- inner_hash.send(:define_singleton_method, inner_method.to_s) { inner_hash[inner_key] }
422
- inner_hash.send(:define_singleton_method, 'record_id') { inner_hash['recordId'] }
423
- end
424
- end
425
- end
426
- hash.merge!({ key => result['portalData'][key] })
427
- end
428
- hash
429
- end
430
-
431
- ##
432
- # Retrieve the first record from FileMaker from the context of the Model.
433
- #
434
- # @return [Record]: a Record corresponding to the FileMaker record.
435
- def self.first
436
- results = Request.retrieve_first(layout_name)
437
- if results['messages'][0]['code'] == '0'
438
- r_results = results['response']['data']
439
- ret_val = r_results.empty? ? Trophonius::Record.new : build_result(r_results[0])
440
- ret_val.send(:define_singleton_method, 'result_count') { r_results.empty? ? 0 : 1 }
441
- ret_val
442
- else
443
- Error.throw_error(results['messages'][0]['code'])
444
- end
445
- end
446
-
447
- ##
448
- # Runs a FileMaker script from the context of the Model.
449
- #
450
- # @param [String] script: the FileMaker script to run
451
- #
452
- # @param [String] scriptparameter: the parameter required by the FileMaker script
453
- #
454
- # @return [String]: string representing the script result returned by FileMaker
455
- def self.run_script(script: '', scriptparameter: '')
456
- result = Request.run_script(script, scriptparameter, layout_name)
457
- if result['messages'][0]['code'] != '0'
458
- Error.throw_error(result['messages'][0]['code'])
459
- elsif result['response']['scriptResult'] == '403'
460
- Error.throw_error(403)
461
- else
462
- result['response']['scriptResult']
463
-
464
- end
465
- end
466
-
467
- ##
468
- # Retrieve the first 10000000 records from FileMaker from the context of the Model.
469
- #
470
- # @param [Hash] sort: a hash containing the fields to sort by and the direction to sort in (optional)
471
- #
472
- # @return [RecordSet]: a RecordSet containing all the Record objects that correspond to the FileMaker records.
473
- def self.all(sort: {})
474
- uri = URI::RFC2396_Parser.new
475
- results = Request.retrieve_all(layout_name, sort)
476
- count = results['response']['scriptResult'].to_i
477
- url = if @limit.empty? || @offset.empty?
478
- URI(
479
- uri.escape(
480
- "http#{Trophonius.config.ssl == true ? 's' : ''}://#{Trophonius.config.host}/fmi/data/v1/databases/#{
481
- Trophonius.config.database
482
- }/layouts/#{layout_name}/records?_limit=#{count == 0 ? 1_000_000 : count}"
483
- )
484
- )
485
- else
486
- URI(
487
- uri.escape(
488
- "http#{Trophonius.config.ssl == true ? 's' : ''}://#{Trophonius.config.host}/fmi/data/v1/databases/#{
489
- Trophonius.config.database
490
- }/layouts/#{layout_name}/records?_offset=#{@offset}&_limit=#{@limit}"
491
- )
492
- )
493
- end
494
- @limit = ''
495
- @offset = ''
496
- results = Request.make_request(url, "Bearer #{Request.get_token}", 'get', '{}')
497
- if results['messages'][0]['code'] == '0'
498
- r_results = results['response']['data']
499
- ret_val = RecordSet.new(layout_name, non_modifiable_fields)
500
- r_results.each do |r|
501
- hash = build_result(r)
502
- ret_val << hash
503
- end
504
- ret_val.result_count = count
505
- ret_val
506
- else
507
- Error.throw_error(results['messages'][0]['code'])
508
- end
509
- end
510
- end
511
- end
@@ -1,173 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'base64'
4
- require 'trophonius_connection'
5
- require 'uri'
6
- require 'net/http'
7
- module Trophonius
8
- module Trophonius::Request
9
- ##
10
- # Crafts and runs a HTTP request of any type
11
- #
12
- # @param [URI] urlparam: the url to make the request to
13
- #
14
- # @param [String] auth: the authentication required for the request
15
- #
16
- # @param [String] method: the type of HTTP request to make (i.e. get)
17
- #
18
- # @param [JSONString] body: the body of the HTTP request
19
- #
20
- # @param [String] params: optional parameters added to the request
21
- #
22
- # @return [JSON] parsed json of the response
23
- def self.make_request(url_param, auth, method, body, params = '')
24
- ssl_verifyhost = Trophonius.config.local_network ? 0 : 2
25
- ssl_verifypeer = !Trophonius.config.local_network
26
- request =
27
- Typhoeus::Request.new(
28
- url_param,
29
- method: method.to_sym,
30
- body: body,
31
- params: params,
32
- ssl_verifyhost: ssl_verifyhost,
33
- ssl_verifypeer: ssl_verifypeer,
34
- headers: { 'Content-Type' => 'application/json', Authorization: auth.to_s }
35
- )
36
- temp = request.run
37
- begin
38
- JSON.parse(temp.response_body)
39
- rescue Exception => e
40
- puts e
41
- puts e.backtrace
42
- Error.throw_error('1631')
43
- end
44
- end
45
-
46
- ##
47
- # Crafts and runs a HTTP request for uploading a file to a container
48
- #
49
- # @param [URI] urlparam: the url to make the request to
50
- #
51
- # @param [String] auth: the authentication required for the request
52
- #
53
- # @param [Tempfile or File] file: file to upload
54
- #
55
- # @return [JSON] parsed json of the response
56
- def self.upload_file_request(url_param, auth, file)
57
- url = URI(url_param.to_s)
58
-
59
- https = Net::HTTP.new(url.host, url.port)
60
- https.use_ssl = true
61
-
62
- request = Net::HTTP::Post.new(url)
63
- request['Authorization'] = auth.to_s
64
- request['Content-Type'] = 'multipart/form-data;'
65
- form_data = [['upload', file]]
66
- request.set_form form_data, 'multipart/form-data'
67
- response = https.request(request)
68
- begin
69
- JSON.parse(response.read_body)
70
- rescue Exception
71
- Error.throw_error('1631')
72
- end
73
- end
74
-
75
- ##
76
- # Gets the current FileMaker token
77
- #
78
- # @return [String] a valid FileMaker token
79
- def self.get_token
80
- Connection.valid_connection? ? Connection.token : Connection.connect
81
- end
82
-
83
- ##
84
- # Retrieves the first record from FileMaker
85
- #
86
- # @return [JSON] The first record from FileMaker
87
- def self.retrieve_first(layout_name)
88
- uri = URI::RFC2396_Parser.new
89
- url =
90
- URI(
91
- uri.escape(
92
- "http#{Trophonius.config.ssl == true ? 's' : ''}://#{Trophonius.config.host}/fmi/data/v1/databases/#{
93
- Trophonius.config.database
94
- }/layouts/#{layout_name}/records?_limit=1"
95
- )
96
- )
97
- make_request(url, "Bearer #{get_token}", 'get', '{}')
98
- end
99
-
100
- ##
101
- # Retrieves the fieldnames of a layout
102
- #
103
- # @return [JSON] The fieldnames of a layout
104
- def self.get_layout_field_names(layout_name)
105
- uri = URI::RFC2396_Parser.new
106
- url =
107
- URI(
108
- uri.escape(
109
- "http#{Trophonius.config.ssl == true ? 's' : ''}://#{Trophonius.config.host}/fmi/data/v1/databases/#{
110
- Trophonius.config.database
111
- }/layouts/#{layout_name}"
112
- )
113
- )
114
- begin
115
- make_request(url, "Bearer #{get_token}", 'get', '{}')['response']['fieldMetaData'].map { |field| field['name'] }
116
- rescue StandardError => e
117
- puts e
118
- puts e.backtrace
119
- Error.throw_error('1631')
120
- end
121
- end
122
-
123
- ##
124
- # Runs a FileMaker script
125
- #
126
- # @return [JSON] The script result from FileMaker
127
- def self.run_script(script, scriptparameter, layout_name)
128
- uri = URI::RFC2396_Parser.new
129
- url =
130
- URI(
131
- uri.escape(
132
- "http#{Trophonius.config.ssl == true ? 's' : ''}://#{Trophonius.config.host}/fmi/data/v1/databases/#{
133
- Trophonius.config.database
134
- }/layouts/#{layout_name}/records?_limit=1&script=#{script}&script.param=#{scriptparameter}"
135
- )
136
- )
137
- make_request(url, "Bearer #{get_token}", 'get', '{}')
138
- end
139
-
140
- ##
141
- # Retrieves the 10000000 records from FileMaker
142
- #
143
- # @return [JSON] The first 10000000 records from FileMaker
144
- def self.retrieve_all(layout_name, sort)
145
- uri = URI::RFC2396_Parser.new
146
- if sort.empty?
147
- url =
148
- URI(
149
- uri.escape(
150
- "http#{Trophonius.config.ssl == true ? 's' : ''}://#{Trophonius.config.host}/fmi/data/v1/databases/#{
151
- Trophonius.config.database
152
- }/layouts/#{layout_name}/records?_limit=10000000#{
153
- Trophonius.config.count_result_script == '' ? '' : "&script=#{Trophonius.config.count_result_script}"
154
- }"
155
- )
156
- )
157
- else
158
- sort_order = sort.to_json.to_s
159
- url =
160
- URI(
161
- uri.escape(
162
- "http#{Trophonius.config.ssl == true ? 's' : ''}://#{Trophonius.config.host}/fmi/data/v1/databases/#{
163
- Trophonius.config.database
164
- }/layouts/#{layout_name}/records?_limit=10000000&_sort=#{sort_order}#{
165
- Trophonius.config.count_result_script == '' ? '' : "&script=#{Trophonius.config.count_result_script}"
166
- }"
167
- )
168
- )
169
- end
170
- make_request(url, "Bearer #{get_token}", 'get', '{}')
171
- end
172
- end
173
- end
@@ -1,6 +0,0 @@
1
- class Time
2
- def to_fm
3
- self.strftime('%m-%d-%Y %H:%M:%S')
4
- end
5
- alias convert_to_fm to_fm
6
- end
File without changes