Files
tickte-system/node_modules/appwrite/src/services/graphql.ts
2025-12-17 17:55:13 +01:00

69 lines
1.8 KiB
TypeScript

import { Service } from '../service';
import { AppwriteException, Client } from '../client';
import type { Models } from '../models';
import type { UploadProgress, Payload } from '../client';
export class Graphql extends Service {
constructor(client: Client)
{
super(client);
}
/**
* GraphQL endpoint
*
* Execute a GraphQL mutation.
*
* @param {object} query
* @throws {AppwriteException}
* @returns {Promise}
*/
async query(query: object): Promise<{}> {
if (typeof query === 'undefined') {
throw new AppwriteException('Missing required parameter: "query"');
}
const apiPath = '/graphql';
const payload: Payload = {};
if (typeof query !== 'undefined') {
payload['query'] = query;
}
const uri = new URL(this.client.config.endpoint + apiPath);
return await this.client.call('post', uri, {
'x-sdk-graphql': 'true',
'content-type': 'application/json',
}, payload);
}
/**
* GraphQL endpoint
*
* Execute a GraphQL mutation.
*
* @param {object} query
* @throws {AppwriteException}
* @returns {Promise}
*/
async mutation(query: object): Promise<{}> {
if (typeof query === 'undefined') {
throw new AppwriteException('Missing required parameter: "query"');
}
const apiPath = '/graphql/mutation';
const payload: Payload = {};
if (typeof query !== 'undefined') {
payload['query'] = query;
}
const uri = new URL(this.client.config.endpoint + apiPath);
return await this.client.call('post', uri, {
'x-sdk-graphql': 'true',
'content-type': 'application/json',
}, payload);
}
};