switch to mongo's id handling

This commit is contained in:
Joao Correia
2025-01-30 11:50:28 +00:00
parent 5d727fc528
commit c968044160
6 changed files with 29 additions and 32 deletions

View File

@@ -1,32 +1,33 @@
import { ObjectId } from "mongodb";
import { ApprovalWorkflow } from "@/interfaces/approval.workflow";
import client from "@/lib/mongodb";
const db = client.db(process.env.MONGODB_DB);
export const getApprovalWorkflows = async (ids?: string[]) => {
return await db
.collection("approval-workflows")
.find<ApprovalWorkflow>(ids ? { id: { $in: ids } } : {})
.toArray();
return await db
.collection<ApprovalWorkflow>("approval-workflows")
.find(ids ? { _id: { $in: ids.map((id) => new ObjectId(id)) } } : {})
.toArray();
};
export const getApprovalWorkflow = async (id: string) => {
return await db.collection("approval-workflows").findOne<ApprovalWorkflow>({ id });
return await db.collection<ApprovalWorkflow>("approval-workflows").findOne({ _id: new ObjectId(id) });
};
export const createApprovalWorkflow = async (workflow: ApprovalWorkflow) => {
return await db.collection("approval-workflows").insertOne(workflow);
export const createApprovalWorkflow = async (workflow: Omit<ApprovalWorkflow, "_id">) => {
return await db.collection("approval-workflows").insertOne(workflow);
};
export const createApprovalWorkflows = async (workflows: ApprovalWorkflow[]) => {
if (workflows.length === 0) return;
return await db.collection<ApprovalWorkflow>("approval-workflows").insertMany(workflows);
export const createApprovalWorkflows = async (workflows: Omit<ApprovalWorkflow, "_id">[]) => {
if (workflows.length === 0) return;
return await db.collection("approval-workflows").insertMany(workflows);
};
export const updateApprovalWorkflow = async (id: string, workflow: ApprovalWorkflow) => {
return await db.collection("approval-workflows").replaceOne({ id }, workflow);
export const updateApprovalWorkflow = async (id: string, workflow: Omit<ApprovalWorkflow, "_id">) => {
return await db.collection("approval-workflows").replaceOne({ _id: new ObjectId(id) }, workflow);
};
export const deleteApprovalWorkflow = async (id: string) => {
return await db.collection("approval-workflows").deleteOne({ id });
};
return await db.collection("approval-workflows").deleteOne({ _id: new ObjectId(id) });
};