dsql-admin/dsql-app/package-shared/functions/backend/queues/add-queue.ts

45 lines
1.2 KiB
TypeScript
Raw Normal View History

2025-02-16 16:12:40 +00:00
import getQueue from "./get-queue";
import {
DSQL_DATASQUIREL_PROCESS_QUEUE,
DsqlTables,
} from "../../../types/dsql";
import dsqlCrud from "../../../utils/data-fetching/crud";
import numberfy from "../../../utils/numberfy";
type Param = {
queue: DSQL_DATASQUIREL_PROCESS_QUEUE;
userId: string | number;
dummy?: boolean;
};
export default async function addQueue({ queue, userId, dummy }: Param) {
const tableName: (typeof DsqlTables)[number] = "process_queue";
const existingQueueRes = dummy
? undefined
: ((await getQueue({
query: {
query: {
user_id: {
value: String(userId),
},
job_type: {
value: String(queue.job_type),
},
},
},
})) as DSQL_DATASQUIREL_PROCESS_QUEUE[] | undefined);
const existingQueue = existingQueueRes?.[0];
if (existingQueue?.id && !dummy) return undefined;
const addQueueRes = await dsqlCrud<DSQL_DATASQUIREL_PROCESS_QUEUE>({
action: "insert",
table: tableName,
data: { ...queue, user_id: numberfy(userId) },
});
return addQueueRes;
}