import path from "path"; import queryDSQLAPI from "../../functions/api/query-dsql-api"; import { APIResponseObject, DsqlCrudQueryObject } from "../../types"; import grabAPIBasePath from "../../utils/grab-api-base-path"; export type APICrudPostParams< T extends { [key: string]: any } = { [key: string]: any } > = { dbName: string; tableName: string; body: T; update?: boolean; apiKey?: string; }; export default async function apiCrudPOST< T extends { [key: string]: any } = { [key: string]: any } >({ dbName, tableName, body, update, apiKey, }: APICrudPostParams): Promise { const basePath = grabAPIBasePath({ paradigm: "crud" }); const passedID = body.id as string | number | undefined; const finalID = update ? typeof passedID === "number" ? String(passedID) : passedID : undefined; const finalPath = path.join(basePath, dbName, tableName, finalID || ""); const GET_RES = await queryDSQLAPI>({ method: update ? "PUT" : "POST", path: finalPath, body, apiKey, }); return GET_RES; }