This commit is contained in:
Benjamin Toby
2025-01-25 14:28:26 +01:00
parent ebf3618667
commit 483ea16d4d
10 changed files with 93 additions and 100 deletions
+43
View File
@@ -1462,3 +1462,46 @@ export type ApiGetQueryObject<
table: string;
dbFullName?: string;
};
export const DataCrudRequestMethods = ["GET", "POST", "PUT", "DELETE"] as const;
export type DsqlMethodCrudParam<
T extends { [key: string]: any } = { [key: string]: any }
> = {
method: (typeof DataCrudRequestMethods)[number];
body?: T;
query?: string | T;
tableName: string;
addUser?: {
field: string;
};
user?: DATASQUIREL_LoggedInUser;
extraData?: T;
transform?: ({
data,
existingData,
user,
}: {
user?: DATASQUIREL_LoggedInUser;
data: T;
existingData?: T;
reqMethod: (typeof DataCrudRequestMethods)[number];
}) => Promise<T>;
existingData?: T;
};
export const DsqlCrudActions = ["insert", "update", "delete", "get"] as const;
export type DsqlCrudQueryObject<T extends object = { [key: string]: any }> =
ServerQueryParam & {
query: ServerQueryQueryObject<T>;
};
export type DsqlCrudParam<T extends object = { [key: string]: any }> = {
action: (typeof DsqlCrudActions)[number];
table: string;
data?: T;
targetId?: string | number;
query?: DsqlCrudQueryObject<T>;
sanitize?: (data?: T) => T;
};
+2 -23
View File
@@ -1,28 +1,7 @@
import get from "../../actions/get";
import post from "../../actions/post";
import sqlGenerator from "../../functions/dsql/sql/sql-generator";
import {
PostReturn,
ServerQueryParam,
ServerQueryQueryObject,
} from "../../types";
import numberfy from "../numberfy";
export const DsqlCrudActions = ["insert", "update", "delete", "get"] as const;
export type CrudQueryObject<T extends object = { [key: string]: any }> =
ServerQueryParam & {
query: ServerQueryQueryObject<T>;
};
export type CrudParam<T extends object = { [key: string]: any }> = {
action: (typeof DsqlCrudActions)[number];
table: string;
data?: T;
targetId?: string | number;
query?: CrudQueryObject<T>;
sanitize?: (data?: T) => T;
};
import { DsqlCrudParam, PostReturn } from "../../types";
export default async function dsqlCrud<
T extends { [key: string]: any } = { [key: string]: any }
@@ -33,7 +12,7 @@ export default async function dsqlCrud<
targetId,
query,
sanitize,
}: CrudParam<T>): Promise<
}: DsqlCrudParam<T>): Promise<
| (PostReturn & {
queryObject?: ReturnType<Awaited<typeof sqlGenerator>>;
})
@@ -1,9 +1,7 @@
import { DATASQUIREL_LoggedInUser, ServerQueryParam } from "../../types";
import { DsqlMethodCrudParam, ServerQueryParam } from "../../types";
import EJSON from "../ejson";
import dsqlCrud from "./crud";
export const DataCrudRequestMethods = ["GET", "POST", "PUT", "DELETE"] as const;
export type APIDataCrudQuery = ServerQueryParam & {
page?: number;
};
@@ -15,31 +13,6 @@ export type CRUDResponseObject<P extends any = any> = {
error?: string;
};
export type DsqlMethodCrudParam<
T extends { [key: string]: any } = { [key: string]: any }
> = {
method: (typeof DataCrudRequestMethods)[number];
body?: T;
query?: string | T;
tableName: string;
addUser?: {
field: string;
};
user?: DATASQUIREL_LoggedInUser;
extraData?: T;
transform?: ({
data,
existingData,
user,
}: {
user?: DATASQUIREL_LoggedInUser;
data: T;
existingData?: T;
reqMethod: (typeof DataCrudRequestMethods)[number];
}) => Promise<T>;
existingData?: T;
};
export default async function dsqlMethodCrud<
T extends { [key: string]: any } = { [key: string]: any },
P extends { [key: string]: any } = { [key: string]: any }
@@ -96,7 +69,7 @@ export default async function dsqlMethodCrud<
data: finalData,
existingData: existingData,
user,
reqMethod: method as (typeof DataCrudRequestMethods)[number],
reqMethod: method,
});
}