ExAtlas.Providers.RunPod.GraphQL (ExAtlas v0.5.0)

Copy Markdown View Source

Minimal GraphQL client built on Req, used only for the few RunPod operations not exposed by the REST API (chiefly gpuTypes pricing).

GraphQL-over-HTTP is just POST {query, variables} → {data | errors}, so a ~30-line wrapper is preferable to adding a heavier GraphQL client dependency (Neuron is stale; AbsintheClient is Absinthe-flavored). See ExAtlas.Providers.RunPod.Client.graphql/1 for the Req factory.

Summary

Functions

Execute a GraphQL query or mutation.

Functions

query(ctx, query, variables \\ %{})

@spec query(ExAtlas.Provider.ctx(), String.t(), map()) ::
  {:ok, map()} | {:error, ExAtlas.Error.t()}

Execute a GraphQL query or mutation.

Returns {:ok, data} where data is the "data" object from the response (a plain map keyed by string). Returns {:error, ExAtlas.Error.t()} on transport errors, HTTP errors, or GraphQL-level errors.