'use strict';

var client = require('../client');

class Graphql {
  constructor(client) {
    this.client = client;
  }
  query(paramsOrFirst) {
    let params;
    if (paramsOrFirst && typeof paramsOrFirst === "object" && !Array.isArray(paramsOrFirst) && "query" in paramsOrFirst) {
      params = paramsOrFirst || {};
    } else {
      params = {
        query: paramsOrFirst
      };
    }
    const query = params.query;
    if (typeof query === "undefined") {
      throw new client.AppwriteException('Missing required parameter: "query"');
    }
    const apiPath = "/graphql";
    const payload = {};
    if (typeof query !== "undefined") {
      payload["query"] = query;
    }
    const uri = new URL(this.client.config.endpoint + apiPath);
    const apiHeaders = {
      "x-sdk-graphql": "true",
      "content-type": "application/json"
    };
    return this.client.call(
      "post",
      uri,
      apiHeaders,
      payload
    );
  }
  mutation(paramsOrFirst) {
    let params;
    if (paramsOrFirst && typeof paramsOrFirst === "object" && !Array.isArray(paramsOrFirst) && "query" in paramsOrFirst) {
      params = paramsOrFirst || {};
    } else {
      params = {
        query: paramsOrFirst
      };
    }
    const query = params.query;
    if (typeof query === "undefined") {
      throw new client.AppwriteException('Missing required parameter: "query"');
    }
    const apiPath = "/graphql/mutation";
    const payload = {};
    if (typeof query !== "undefined") {
      payload["query"] = query;
    }
    const uri = new URL(this.client.config.endpoint + apiPath);
    const apiHeaders = {
      "x-sdk-graphql": "true",
      "content-type": "application/json"
    };
    return this.client.call(
      "post",
      uri,
      apiHeaders,
      payload
    );
  }
}

exports.Graphql = Graphql;
//# sourceMappingURL=out.js.map
//# sourceMappingURL=graphql.js.map