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 |
# 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 then [response, params] when 401 then raise Errors::AuthenticationError, 'Auth failed.' when 0 then raise Errors::CommunicationError, 'Empty response.' when 404 then raise Errors::CommunicationError, 'HTTP 404 Not Found' when 302 then raise Errors::CommunicationError, 'Redirect not supported' else msg = "Unknown response status = #{response.status}" raise Errors::CommunicationError, msg end end |