From 833b1bee82cf823b386760dd2f4c425b3b3d77f9 Mon Sep 17 00:00:00 2001 From: mhmmdafif Date: Mon, 24 Nov 2025 16:53:10 +0700 Subject: [PATCH] crud: sparepart --- controllers/sparepart.controller.js | 77 +++++++++++++++++++++++++++++ 1 file changed, 77 insertions(+) create mode 100644 controllers/sparepart.controller.js diff --git a/controllers/sparepart.controller.js b/controllers/sparepart.controller.js new file mode 100644 index 0000000..8714269 --- /dev/null +++ b/controllers/sparepart.controller.js @@ -0,0 +1,77 @@ +const SparepartService = require('../services/sparepart.service'); +const { setResponse, setResponsePaging, checkValidate } = require('../helpers/utils'); + +const { + insertSparepartSchema, + updateSparepartSchema, +} = require('../validate/sparepart.schema'); + +class SparepartController { + static async getAll(req, res) { + const queryParams = req.query; + const results = await SparepartService.getAllSparepart(queryParams); + const response = await setResponsePaging(queryParams, results, 'Sparepart found'); + res.status(response.statusCode).json(response); + } + static async getById(req, res) { + const { id } = req.params; + const results = await SparepartService.getSparepartById(id); + const response = await setResponse(results, 'Sparepart found'); + res.status(response.statusCode).json(response); + } + static async create(req, res) { + const { error, value } = await checkValidate(insertSparepartSchema, req); + if (error) { + return res.status(400).json(setResponse(error, 'Validation failed', 400)); + } + try { + if (req.file) { + const file = req.file; + const ext = require('path').extname(file.originalname).toLowerCase(); + const typeDoc = ext === ".pdf" ? "PDF" : "IMAGE"; + const folder = typeDoc === "PDF" ? "pdf" : "images"; + const pathDocument = `${folder}/${file.filename}`; + value.path_foto = pathDocument; + } + value.created_by = req.user?.user_id || null; + const results = await SparepartService.createSparepart(value); + const response = await setResponse(results, 'Sparepart created successfully'); + return res.status(response.statusCode).json(response); + } catch (err) { + const response = setResponse([], err.message, err.statusCode || 500); + res.status(response.statusCode).json(response); + } + } + + static async update(req, res) { + const { id } = req.params; + const { error, value } = await checkValidate(updateSparepartSchema, req); + if (error) { + return res.status(400).json(setResponse(error, 'Validation failed', 400)); + } + try { + if (req.file) { + const file = req.file; + const ext = require('path').extname(file.originalname).toLowerCase(); + const typeDoc = ext === ".pdf" ? "PDF" : "IMAGE"; + const folder = typeDoc === "PDF" ? "pdf" : "images"; + const pathDocument = `${folder}/${file.filename}`; + value.path_foto = pathDocument; + } + value.updated_by = req.user?.user_id || null; + const results = await SparepartService.updateSparepart(id, value); + const response = await setResponse(results, 'Sparepart updated successfully'); + res.status(response.statusCode).json(response); + } catch (err) { + const response = setResponse([], err.message, err.statusCode || 500); + res.status(response.statusCode).json(response); + } + } + static async delete(req, res) { + const { id } = req.params; + const results = await SparepartService.deleteSparepart(id, req.user.user_id); + const response = await setResponse(results, 'Sparepart deleted successfully'); + res.status(response.statusCode).json(response); + } +} +module.exports = SparepartController; \ No newline at end of file