import { from, Observable, tap } from "rxjs"; import { IEnumDef, IModel, Project } from "@vmfvmf/ywtc-lib"; import { error } from "console"; import { httpRequest as httpsRequest } from "./http-request"; const HOST = { host: 'localhost', port: 8080}; const apiPath = HOST.host == 'localhost' ? '' : '/api' export function getProjectFromKraftos(prjid: number): Promise { if (!prjid) { throw error("The argument prjid is required!!!"); } let params = { ...HOST, path: `${apiPath}/project/${prjid}`, agent: false, // Create a new agent just for this one request }; return from(httpsRequest(params)).pipe( tap((newPrj: Project) => newPrj!.config = JSON.parse(newPrj!.json!))) .toPromise() as Promise ; } export function getDummyDataFromChatGpt(modelId: number): Observable { if (!modelId) { throw error("The argument modelId is required!!!"); } let params = { ...HOST, path: `${apiPath}/public/qcgpt/${modelId}`, method: 'GET', agent: false, // Create a new agent just for this one request headers: { 'Content-Type': 'application/json' }, }; return from(httpsRequest(params)); } export function getAnswerFromKraftosApiForChatGpt(qry: string): Observable { if (!qry) { throw error("The argument qry is required!!!"); } let params = { ...HOST, path: `${apiPath}/public/qcgpt`, method: 'POST', agent: false, // Create a new agent just for this one request headers: { 'Content-Type': 'application/json' }, }; return from(httpsRequest(params, qry)); } export function getModelsFromKraftosApi(prjid: number): Promise { if (!prjid) { throw error("The argument prjid is required!!!"); } let params = { ...HOST, path: `${apiPath}/project/${prjid}/model`, agent: false, // Create a new agent just for this one request }; return httpsRequest(params) as Promise; } export function getModelFromKraftosApi(modelid: number): Promise { if (!modelid) { throw error("The argument modelid is required!!!"); } let params = { ...HOST, path: `${apiPath}/model/${modelid}`, agent: false, // Create a new agent just for this one request }; return httpsRequest(params) as Promise; } export function getModelRelationFromKraftosApi(modelrelid: number): Promise { if (!modelrelid) { throw error("The argument modelrelid is required!!!"); } let params = { ...HOST, path: `${apiPath}/model/relation/${modelrelid}`, agent: false, // Create a new agent just for this one request }; return httpsRequest(params) as Promise; } export function getEnumsFromKraftosApi(prjid: number): Promise { if (!prjid) { throw error("The argument prjid is required!!!"); } let params = { ...HOST, path: `${apiPath}/project/${prjid}/enums`, agent: false, // Create a new agent just for this one request }; return httpsRequest(params) as Promise; } export function getEnumByNameFromKraftosApi(prjid: number, name: string): Promise { if (!prjid) { throw error("The argument prjid is required!!!"); } let params = { ...HOST, path: `${apiPath}/project/${prjid}/enum/by-name/${name}`, agent: false // Create a new agent just for this one request }; return httpsRequest(params) as Promise; } export function getEnumByIdFromKraftosApi(enumid: number): Promise { if (!enumid) { throw error("The argument enumid is required!!!"); } let params = { ...HOST, path: `${apiPath}/enum-def/${enumid}`, agent: false // Create a new agent just for this one request }; return httpsRequest(params) as Promise; }