Files
quicklanch-server/src/app/modules/order/order.service.ts
T

62 lines
1.9 KiB
TypeScript
Raw Normal View History

2026-04-12 22:47:56 +06:00
import { Request } from "express";
import { configs } from "../../configs";
2026-04-12 22:47:56 +06:00
import { prisma } from "../../lib/prisma";
import { orderEmailQueue } from "../../queues/email/order/order.email.queue";
2026-04-12 22:47:56 +06:00
const get_all_order_from_db = async (req: Request) => {
// define your own login here
const result = await prisma.order.findMany();
return result;
};
const get_single_order_from_db = async (req: Request) => {
// define your own login here
const { id } = req.params as { id: string };
2026-04-12 22:47:56 +06:00
const result = await prisma.order.findUnique({ where: { id } });
return result;
};
const create_order_into_db = async (req: Request) => {
const payload = req?.body;
payload.status = "INITIATED";
payload.paymentType = "COD"
// nwo init order
const result = await prisma.order.create({ data: payload });
// if email exist sent tracking link
if (payload.customerEmail) {
const trackingLink = `${configs.jwt.front_end_url}/track-order/${result.id}`;
await orderEmailQueue.add("order-email-queue", {
email: payload.customerEmail,
subject: "Order Tracking",
textBody: `Your order has been created. Track your order here: ${trackingLink}`,
htmlBody: `<p>Your order has been created. Track your order here: <a href="${trackingLink}">Track Order</a></p>`
})
2026-04-12 22:47:56 +06:00
}
return result;
};
const update_order_into_db = async (req: Request) => {
// define your own login here
const { id } = req.params as { id: string };
2026-04-12 22:47:56 +06:00
const result = await prisma.order.update({ where: { id }, data: req.body });
return result;
};
const delete_order_from_db = async (req: Request) => {
// define your own login here
const { id } = req.params as { id: string };
2026-04-12 22:47:56 +06:00
const result = await prisma.order.delete({ where: { id } });
return result;
};
export const order_service = {
get_all_order_from_db,
get_single_order_from_db,
create_order_into_db,
update_order_into_db,
delete_order_from_db,
};