UNPKG

calibre

Version:

Calibre - Page speed performance testing with Google Lighthouse

134 lines (122 loc) 2.58 kB
import { request } from './graphql.js' const CREATE_MUTATION = ` mutation CreateIntegration($organisation: String, $site: String!, $attributes: IntegrationInput!){ createIntegration(organisation: $organisation, site: $site, attributes: $attributes) { uuid provider events url secret isDisabled } } ` const DELETE_MUTATION = ` mutation DeleteIntegration($organisation: String, $site:String!, $uuid: String!){ deleteIntegration(organisation: $organisation, site: $site, uuid: $uuid) { uuid } } ` const UPDATE_MUTATION = ` mutation UpdateIntegration($site:String!, $uuid: String!, $attributes: IntegrationInput!){ updateIntegration(site: $site, uuid: $uuid, attributes: $attributes) { uuid provider events url secret isDisabled } } ` const LIST_QUERY = ` query ListIntegrations( $site: String! $count: Int! $cursor: String ) { organisation { site(slug: $site) { integrationsList(first: $count, after: $cursor) { pageInfo { hasPreviousPage hasNextPage endCursor startCursor } edges { node { uuid provider events url secret isDisabled } } } } } } ` const create = async ({ site, provider, url, events, secret, isDisabled }) => { const response = await request({ query: CREATE_MUTATION, site, attributes: { provider, url, events, secret, isDisabled } }) return response.createIntegration } const destroy = async ({ site, uuid }) => { const response = await request({ query: DELETE_MUTATION, site, uuid }) return response.deleteIntegration } const update = async ({ site, uuid, provider, url, events, secret, isDisabled }) => { const response = await request({ query: UPDATE_MUTATION, site, uuid, attributes: { provider, url, events, secret, isDisabled } }) return response.updateIntegration } const list = async ({ site, count, cursor }) => { const response = await request({ query: LIST_QUERY, site, count, cursor }) return { integrations: response.organisation.site.integrationsList.edges.map( edge => edge.node ), pageInfo: response.organisation.site.integrationsList.pageInfo } } export { create, destroy, update, list }