Class: Artemis::Adapters::NetHttpHmacAdapter
- Inherits:
-
NetHttpAdapter
- Object
- NetHttpAdapter
- Artemis::Adapters::NetHttpHmacAdapter
- Defined in:
- lib/artemis/adapters/net_http_hmac_adapter.rb
Overview
We overwrite execute so we can sign the request with HMAC
Instance Method Summary collapse
-
#execute(document:, operation_name: nil, variables: {}, context: {}) ⇒ Object
Makes an HTTP request for GraphQL query.
Instance Method Details
#execute(document:, operation_name: nil, variables: {}, context: {}) ⇒ Object
Makes an HTTP request for GraphQL query.
6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
# File 'lib/artemis/adapters/net_http_hmac_adapter.rb', line 6 def execute(document:, operation_name: nil, variables: {}, context: {}) request = Net::HTTP::Post.new(uri.request_uri) request.basic_auth(uri.user, uri.password) if uri.user || uri.password request['Accept'] = 'application/json' request['Content-Type'] = 'application/json' headers(context).each { |name, value| request[name] = value } body = {} body['query'] = document.to_query_string body['variables'] = variables if variables.any? body['operationName'] = operation_name if operation_name request.body = JSON.generate(body) # Only changes are in here signed_request = api_auth_sign_request!(request, context.fetch(:api_auth)) response = connection.request(signed_request) case response.code.to_i when 200, 400 JSON.parse(response.body) when 500..599 raise Artemis::GraphQLServerError, "Received server error status #{response.code}: #{response.body}" else { 'errors' => [{ 'message' => "#{response.code} #{response.}" }] } end end |