datasquirel/package-shared/api/crud/get.ts
Benjamin Toby 3730e4722e Updates
2025-07-05 15:16:31 +01:00

38 lines
1.0 KiB
TypeScript

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";
type Params<T extends { [key: string]: any } = { [key: string]: any }> = {
dbName: string;
tableName: string;
query?: DsqlCrudQueryObject<T>;
targetId?: string | number;
apiKey?: string;
};
export default async function apiCrudGET<
T extends { [key: string]: any } = { [key: string]: any }
>({
dbName,
tableName,
query,
targetId,
apiKey,
}: Params<T>): Promise<APIResponseObject> {
const basePath = grabAPIBasePath({ paradigm: "crud" });
const finalID = typeof targetId === "number" ? String(targetId) : targetId;
const finalPath = path.join(basePath, dbName, tableName, finalID || "");
const GET_RES = await queryDSQLAPI<DsqlCrudQueryObject<T>>({
method: "GET",
path: finalPath,
query,
apiKey,
});
return GET_RES;
}