trophonius 1.2.7.1 → 1.2.8

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: 7b4fa3606dce996196ab6530704a27b93fbbf3e2134add785319b7b7921696cb
4
- data.tar.gz: 16042983fe5510c9a29986aab3b77018033063980f1191d5fbf4234aa6bd229c
3
+ metadata.gz: 3bab56e5694a58dfcb36972cd8a7f24b16960b7a6efe520b2ba1c29dbc5a650b
4
+ data.tar.gz: a525c8cda877a52cc8f5d2afe4dbdaf6297c26abd52b738305b78fd28d34dbd1
5
5
  SHA512:
6
- metadata.gz: 36fa65b8130dfe29303627c0727fb8504e832ac50e7b5d74f574f810efeaf9842a55898f68595ba7e2931afefabc4db0f98ec12e0d7aa8d790cde86672b1a614
7
- data.tar.gz: ebdd54e6f7486fedb7cb03cdf87cf6d1df28ce7c06ab6bc3afaa8320bb9a6f94244cb68a59a158bf4059a578795c1cc932092b7e6c40f5dabc1ca7d71bbffbea
6
+ metadata.gz: 14f3fa2154b15daec4104705c81a77f3e44f4301add7764580e6c9a534c14952ce1bba44a4154258fd06e343e3cb7f8747c5fb7cb16d4475b843af05a96338bb
7
+ data.tar.gz: 852d63509a6ec296d9818fdcd688f478b4afc94ced0dd834d09201ba2ec7f2a96fdb54d04e7cf11f7f8753c6559cf5afee4ffd4ad1dfd972b2167c81b7f65e4b
@@ -175,7 +175,7 @@ module Trophonius
175
175
  #
176
176
  # @return [Record] the created record
177
177
  # Model.create(fieldOne: "Data")
178
- def self.create(fieldData)
178
+ def self.create(fieldData, portalData: {})
179
179
  url =
180
180
  URI(
181
181
  URI.escape(
@@ -193,7 +193,26 @@ module Trophonius
193
193
  new_field_data.merge!({ "#{k}" => fieldData[k] })
194
194
  end
195
195
  end
196
- body = "{\"fieldData\": #{new_field_data.to_json}}"
196
+
197
+ new_portal_data = {}
198
+ portalData.each do |portal_name, portal_values|
199
+ new_portal_data.merge!(
200
+ portal_name =>
201
+ portal_values.map do |record|
202
+ record.inject({}) do |new_hash, (key, value)|
203
+ new_hash["#{portal_name}::#{key}"] = value
204
+ new_hash
205
+ end
206
+ end
207
+ )
208
+ end
209
+
210
+ body =
211
+ if new_portal_data != {}
212
+ "{\"fieldData\": #{new_field_data.to_json}, \"portalData\": #{new_portal_data.to_json}}"
213
+ else
214
+ "{\"fieldData\": #{new_field_data.to_json} }"
215
+ end
197
216
  response = Request.make_request(url, "Bearer #{Request.get_token}", 'post', body)
198
217
  if response['messages'][0]['code'] != '0'
199
218
  if response['messages'][0]['code'] == '102'
@@ -152,6 +152,36 @@ module Trophonius
152
152
  end
153
153
  end
154
154
 
155
+ ##
156
+ # Runs a FileMaker script from the context of the Model.
157
+ #
158
+ # @param [String] script: the FileMaker script to run
159
+ #
160
+ # @param [String] scriptparameter: the parameter required by the FileMaker script
161
+ #
162
+ # @return [String]: string representing the script result returned by FileMaker
163
+ def run_script(script: '', scriptparameter: '')
164
+ url =
165
+ URI(
166
+ URI.escape(
167
+ "http#{Trophonius.config.ssl == true ? 's' : ''}://#{Trophonius.config.host}/fmi/data/v1/databases/#{
168
+ Trophonius.config.database
169
+ }/layouts/#{layout_name}/records/#{record_id}?script=#{script}&script.param=#{scriptparameter}"
170
+ )
171
+ )
172
+
173
+ result = Request.make_request(url, "Bearer #{Request.get_token}", 'get', '{}')
174
+
175
+ if result['messages'][0]['code'] != '0'
176
+ Error.throw_error(result['messages'][0]['code'])
177
+ elsif result['response']['scriptResult'] == '403'
178
+ Error.throw_error(403)
179
+ else
180
+ ret_val = result['response']['scriptResult']
181
+ return ret_val || true
182
+ end
183
+ end
184
+
155
185
  ##
156
186
  # Saves the last changes made to the Record to FileMaker.
157
187
  # Throws a FileMaker error if save failed
@@ -46,6 +46,33 @@ module Trophonius
46
46
  return ret_val
47
47
  end
48
48
 
49
+ def run_script(script:, scriptparameter:)
50
+ url =
51
+ URI(
52
+ URI.escape(
53
+ "http#{@config[:ssl] == true ? 's' : ''}://#{@config[:host]}/fmi/data/v1/databases/#{@config[:database]}/layouts/#{
54
+ @config[:layout_name]
55
+ }/records?_limit=1&script=#{script}&script.param=#{scriptparameter}"
56
+ )
57
+ )
58
+
59
+ token = setup_connection
60
+ result = make_request(url, "Bearer #{token}", 'get', '{}')
61
+ ret_val = ''
62
+
63
+ if result['messages'][0]['code'] != '0'
64
+ Error.throw_error(result['messages'][0]['code'])
65
+ elsif result['response']['scriptResult'] == '403'
66
+ Error.throw_error(403)
67
+ else
68
+ ret_val = result['response']['scriptResult']
69
+ end
70
+
71
+ close_connection(token)
72
+
73
+ return ret_val
74
+ end
75
+
49
76
  private
50
77
 
51
78
  def build_result(result)
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.2.7.1
4
+ version: 1.2.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kempen Automatisering