Method: Filemaker::Server#perform_request
- Defined in:
- lib/filemaker/server.rb
#perform_request(method, action, args, options = {}) ⇒ Array
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Mostly used by Filemaker::Api TODO: There must be tracing/instrumentation. CURL etc. Or performance metrics? Also we want to pass in timeout option so we can ignore timeout for really long requests
37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 |
# File 'lib/filemaker/server.rb', line 37 def perform_request(method, action, args, = {}) params = serialize_args(args) .merge(()) .merge({ action => '' }) # Serialize the params for submission?? params.stringify_keys! log_action(params) # yield params if block_given? response = @connection.public_send(method, endpoint, params) case response.status when 200 [response, params] when 401 raise Errors::AuthenticationError, "[#{response.status}] Authentication failed." when 0 raise Errors::CommunicationError, "[#{response.status}] Empty response." when 404 raise Errors::CommunicationError, "[#{response.status}] Not found" when 302 raise Errors::CommunicationError, "[#{response.status}] Redirect not supported" when 502 raise Errors::CommunicationError, "[#{response.status}] Bad gateway. Too many records." else msg = "Unknown response status = #{response.status}" raise Errors::CommunicationError, msg end end |