Update Types
This commit is contained in:
@@ -4,19 +4,15 @@ import _ from "lodash";
|
||||
import serverError from "../../backend/serverError";
|
||||
import runQuery, { DbContextsArray } from "../../backend/db/runQuery";
|
||||
import {
|
||||
ApiGetQueryObject,
|
||||
DSQL_TableSchemaType,
|
||||
GetReturn,
|
||||
ServerQueryParam,
|
||||
} from "../../../types";
|
||||
import apiGetGrabQueryAndValues from "../../../utils/grab-query-and-values";
|
||||
|
||||
type Param = {
|
||||
query:
|
||||
| string
|
||||
| {
|
||||
query: ServerQueryParam;
|
||||
table: string;
|
||||
};
|
||||
type Param<T extends { [key: string]: any } = { [key: string]: any }> = {
|
||||
query: string | ApiGetQueryObject<T>;
|
||||
queryValues?: (string | number)[];
|
||||
dbFullName: string;
|
||||
tableName?: string;
|
||||
@@ -28,7 +24,9 @@ type Param = {
|
||||
/**
|
||||
* # Get Function FOr API
|
||||
*/
|
||||
export default async function apiGet({
|
||||
export default async function apiGet<
|
||||
T extends { [key: string]: any } = { [key: string]: any }
|
||||
>({
|
||||
query,
|
||||
dbFullName,
|
||||
queryValues,
|
||||
@@ -36,7 +34,7 @@ export default async function apiGet({
|
||||
dbSchema,
|
||||
debug,
|
||||
dbContext,
|
||||
}: Param): Promise<import("../../../types").GetReturn> {
|
||||
}: Param<T>): Promise<import("../../../types").GetReturn> {
|
||||
const queryAndValues = apiGetGrabQueryAndValues({
|
||||
query,
|
||||
values: queryValues,
|
||||
|
||||
@@ -4,8 +4,8 @@ import {
|
||||
ServerQueryQueryObject,
|
||||
} from "../../../types";
|
||||
|
||||
type Param = {
|
||||
genObject?: ServerQueryParam;
|
||||
type Param<T extends { [key: string]: any } = { [key: string]: any }> = {
|
||||
genObject?: ServerQueryParam<T>;
|
||||
tableName: string;
|
||||
dbFullName?: string;
|
||||
};
|
||||
@@ -21,11 +21,9 @@ type Return =
|
||||
* # SQL Query Generator
|
||||
* @description Generates an SQL Query for node module `mysql` or `serverless-mysql`
|
||||
*/
|
||||
export default function sqlGenerator({
|
||||
tableName,
|
||||
genObject,
|
||||
dbFullName,
|
||||
}: Param): Return {
|
||||
export default function sqlGenerator<
|
||||
T extends { [key: string]: any } = { [key: string]: any }
|
||||
>({ tableName, genObject, dbFullName }: Param<T>): Return {
|
||||
if (!genObject) return undefined;
|
||||
|
||||
const finalQuery = genObject.query ? genObject.query : undefined;
|
||||
@@ -276,8 +274,8 @@ export default function sqlGenerator({
|
||||
if (genObject.order)
|
||||
queryString += ` ORDER BY ${
|
||||
genObject.join
|
||||
? `${finalDbName}${tableName}.${genObject.order.field}`
|
||||
: genObject.order.field
|
||||
? `${finalDbName}${tableName}.${String(genObject.order.field)}`
|
||||
: String(genObject.order.field)
|
||||
} ${genObject.order.strategy}`;
|
||||
|
||||
if (genObject.limit) queryString += ` LIMIT ${genObject.limit}`;
|
||||
|
||||
@@ -1098,15 +1098,16 @@ export type ServerQueryParam<
|
||||
selectFields?: string[];
|
||||
query?: ServerQueryQueryObject<T>;
|
||||
limit?: number;
|
||||
page?: number;
|
||||
offset?: number;
|
||||
order?: {
|
||||
field: string;
|
||||
field: keyof T;
|
||||
strategy: "ASC" | "DESC";
|
||||
};
|
||||
searchOperator?: (typeof ServerQueryOperators)[number];
|
||||
searchEquality?: (typeof ServerQueryEqualities)[number];
|
||||
addUserId?: {
|
||||
fieldName: string;
|
||||
fieldName: keyof T;
|
||||
};
|
||||
join?: ServerQueryParamsJoin[];
|
||||
[key: string]: any;
|
||||
@@ -1500,7 +1501,7 @@ export const DsqlCrudActions = ["insert", "update", "delete", "get"] as const;
|
||||
|
||||
export type DsqlCrudQueryObject<
|
||||
T extends { [key: string]: any } = { [key: string]: any }
|
||||
> = ServerQueryParam & {
|
||||
> = ServerQueryParam<T> & {
|
||||
query?: ServerQueryQueryObject<T>;
|
||||
};
|
||||
|
||||
|
||||
@@ -1,5 +1,11 @@
|
||||
import { DsqlMethodCrudParam, ServerQueryParam } from "../../types";
|
||||
import {
|
||||
DsqlCrudQueryObject,
|
||||
DsqlMethodCrudParam,
|
||||
ServerQueryParam,
|
||||
} from "../../types";
|
||||
import deserializeQuery from "../deserialize-query";
|
||||
import EJSON from "../ejson";
|
||||
import numberfy from "../numberfy";
|
||||
import dsqlCrud from "./crud";
|
||||
|
||||
export type APIDataCrudQuery = ServerQueryParam & {
|
||||
@@ -35,7 +41,9 @@ export default async function dsqlMethodCrud<
|
||||
|
||||
try {
|
||||
let finalBody = body;
|
||||
let finalQuery = query;
|
||||
let finalQuery = deserializeQuery(query as any) as
|
||||
| DsqlCrudQueryObject<T>
|
||||
| undefined;
|
||||
|
||||
let LIMIT = 10;
|
||||
let PAGE = 1;
|
||||
@@ -55,8 +63,8 @@ export default async function dsqlMethodCrud<
|
||||
}
|
||||
});
|
||||
|
||||
LIMIT = finalQuery.limit || 10;
|
||||
PAGE = finalQuery.page || 1;
|
||||
if (finalQuery.limit) LIMIT = numberfy(finalQuery.limit);
|
||||
if (finalQuery.page) PAGE = numberfy(finalQuery.page);
|
||||
OFFSET = (PAGE - 1) * LIMIT;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,11 +1,13 @@
|
||||
import sqlGenerator from "../functions/dsql/sql/sql-generator";
|
||||
import { ApiGetQueryObject } from "../types";
|
||||
|
||||
type Param = {
|
||||
query: string | ApiGetQueryObject;
|
||||
type Param<T extends { [key: string]: any } = { [key: string]: any }> = {
|
||||
query: string | ApiGetQueryObject<T>;
|
||||
values?: (string | number)[];
|
||||
};
|
||||
export default function apiGetGrabQueryAndValues({ query, values }: Param) {
|
||||
export default function apiGetGrabQueryAndValues<
|
||||
T extends { [key: string]: any } = { [key: string]: any }
|
||||
>({ query, values }: Param<T>) {
|
||||
const queryGenObject =
|
||||
typeof query == "string"
|
||||
? undefined
|
||||
|
||||
Reference in New Issue
Block a user