import { gql } from 'graphql-request'; import { GraphqlService } from '../services'; import { IListModelResponse, ICreateModelResponse } from '../types'; import { Loader } from '../helpers'; class ModelService { @Loader('Loading models for you !!!') public async listModels(projectId: string) { const query = gql` query($projectInput: GetProjectInput!){ project(input: $projectInput) { project { models { cpu, id, name, ram, status } } } } `; const variables = { "projectInput": { "projectId": projectId } }; const response: IListModelResponse = await GraphqlService.query(query, variables); return response?.project?.project?.models || []; } @Loader('Creating model !!!') public async createModel(payload: { ram: number; name: string; projectId: string; cpu: number }) { const mutation = gql` mutation($createModelInput: CreateModelInput!){ createModel(input: $createModelInput) { project { models { cpu, id, name, ram, status } } } } `; const variables = { "createModelInput": payload, } const response: ICreateModelResponse = await GraphqlService.mutation(mutation, variables); return response?.createModel?.project?.models; } } export default new ModelService();