alumbra.pipeline.steps

run

(run opts state)

Runs the given state through the pipeline. It has to be a map of:

  • :query: the GraphQL query string,
  • :operation-name: the GraphQL operation to run (if multiple are given),
  • :variables: a map of variable names and values,
  • :context: a map describing the context of the operation (e.g. session information).

This returns an execution result consisting of the input state, plus:

  • :status: either :success, :exception or :error.
  • :data: the execution result data (if available),
  • :exception: a potentially thrown exception,
  • :error: a keyword describing the kind of error encountered,
  • :errors: a map describing the encountered errors.

opts has to be a map of alumbra.spec-compliant components:

  • :parser-fn
  • :validator-fn
  • :canonicalize-fn
  • :executor-fn

run-ring-request

(run-ring-request opts request)

Like run but uses the given Ring request to extract :query, :operation-name and :variables.

Additionally, opts may contain a :context-fn key that will be applied to the request to derive the :context key.

Note that the request’s :body has to be a map (i.e. already JSON-decoded).