import { gql } from "graphql-request"; import { GraphqlService } from "../services"; import { IProjectsResponse } from '../types'; import { Loader } from "../helpers"; class ProjectService { @Loader('Listing projects !!!') public async getProjects(): Promise { const query = gql` query { projects { name, id, active, archived, createdAt, id, updatedAt, } } `; return await GraphqlService.query(query); } @Loader('Listing project !!!') public async getProject(projectId: string) { const query = gql` query getProject($projectInput:GetProjectInput!){ project(input:$projectInput){ project { name, id, active, archived, createdAt, id, updatedAt, } } } `; const variables = { "projectInput": { "projectId": projectId } } return await GraphqlService.query(query, variables); } @Loader('Creating project for you !!!...') public async createProject(name: string) { const mutation = gql` mutation($createProjectInput: CreateProjectInput!){ createProject(input: $createProjectInput) { project { name, id, active, archived, createdAt, id, updatedAt, } } } `; const variable = { "createProjectInput": { "name": name } } return await GraphqlService.mutation(mutation, variable); } } export default new ProjectService();