38 lines
1.4 KiB
JavaScript
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 };
|