Module: Aspera::GraphQL
- Defined in:
- lib/aspera/graphql.rb
Overview
Helper to execute GraphQL queries via a Rest object.
Follows the GraphQL-over-HTTP convention: POST variables to endpoint,
parse top-level data key, raise on top-level errors array.
Class Method Summary collapse
-
.execute(rest, name, variables = {}) ⇒ Hash
Execute a GraphQL query loaded from a .graphql file in lib/aspera/api/queries/.
Class Method Details
.execute(rest, name, variables = {}) ⇒ Hash
Execute a GraphQL query loaded from a .graphql file in lib/aspera/api/queries/
20 21 22 23 24 25 26 |
# File 'lib/aspera/graphql.rb', line 20 def execute(rest, name, variables = {}) query = load_query(name) response = rest.create(nil, {query: query, variables: variables}) errors = response['errors'] raise RestCallError, errors.map { |e| e['message'] }.join("\n") if errors.is_a?(Array) && !errors.empty? response['data'] end |