erp_be/src/modules/grn/grn.controller.js
2026-06-18 18:29:46 +05:30

38 lines
1.4 KiB
JavaScript

const asyncHandler = require('../../utils/asyncHandler');
const ApiResponse = require('../../utils/ApiResponse');
const service = require('./grn.service');
const create = asyncHandler(async (req, res) => {
const data = await service.createGrn(req.body, req.user?.id, req.id);
res.status(201).json(new ApiResponse(201, data, 'GRN created successfully'));
});
const list = asyncHandler(async (req, res) => {
const result = await service.listGrns(req.query);
res.json(new ApiResponse(200, result.data, 'GRNs fetched', result.meta));
});
const getOne = asyncHandler(async (req, res) => {
const data = await service.getGrnById(req.params.id);
res.json(new ApiResponse(200, data, 'GRN fetched'));
});
const update = asyncHandler(async (req, res) => {
const data = await service.updateGrn(req.params.id, req.body, req.user?.id, req.id);
res.json(new ApiResponse(200, data, 'GRN updated successfully'));
});
const cancel = asyncHandler(async (req, res) => {
const data = await service.cancelGrn(req.params.id, req.body, req.user?.id, req.id);
res.json(new ApiResponse(200, data, 'GRN cancelled successfully'));
});
const pdf = asyncHandler(async (req, res) => {
const { filename, buffer } = await service.getGrnPdf(req.params.id);
res.setHeader('Content-Type', 'application/pdf');
res.setHeader('Content-Disposition', `attachment; filename="${filename}"`);
res.send(buffer);
});
module.exports = { create, list, getOne, update, cancel, pdf };