282759c0e5
In preparation for Europa, we will vendor multiple CUE modules: - `pkg/alpha.dagger.io`: legacy non-europa packages - `pkg/dagger.io`: core Europa packages - `pkg/universe.dagger.io`: Europa universe Signed-off-by: Andrea Luzzardi <aluzzardi@gmail.com>
40 lines
677 B
CUE
40 lines
677 B
CUE
package graphql
|
|
|
|
import (
|
|
"encoding/json"
|
|
|
|
"alpha.dagger.io/dagger"
|
|
"alpha.dagger.io/http"
|
|
)
|
|
|
|
#Query: {
|
|
// Contents of the graphql query
|
|
query: string
|
|
// graphql variables
|
|
variable: [key=string]: _
|
|
// graphql url
|
|
url: string
|
|
//API Token
|
|
token: dagger.#Input & dagger.#Secret | *null
|
|
|
|
post: http.#Post & {
|
|
"url": url
|
|
request: {
|
|
body: json.Marshal({
|
|
"query": query
|
|
variables: json.Marshal(variable)
|
|
})
|
|
header: "Content-Type": "application/json"
|
|
token: token
|
|
}
|
|
}
|
|
|
|
payload: {
|
|
data: {...}
|
|
errors?: {...}
|
|
}
|
|
payload: json.Unmarshal(post.response.body)
|
|
data: payload.data @dagger(output)
|
|
errors?: payload.errors @dagger(output)
|
|
}
|