34 lines
1.3 KiB
TypeScript
34 lines
1.3 KiB
TypeScript
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<ApprovalWorkflow>("approval-workflows")
|
|
.find(ids ? { _id: { $in: ids.map((id) => new ObjectId(id)) } } : {})
|
|
.toArray();
|
|
};
|
|
|
|
export const getApprovalWorkflow = async (id: string) => {
|
|
return await db.collection<ApprovalWorkflow>("approval-workflows").findOne({ _id: new ObjectId(id) });
|
|
};
|
|
|
|
export const createApprovalWorkflow = async (workflow: Omit<ApprovalWorkflow, "_id">) => {
|
|
return await db.collection("approval-workflows").insertOne(workflow);
|
|
};
|
|
|
|
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: 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: new ObjectId(id) });
|
|
};
|