69 lines
2.1 KiB
TypeScript
69 lines
2.1 KiB
TypeScript
import { Request, Response } from "express";
|
|
import MaterialService from "../services/MaterialService";
|
|
|
|
export class MaterialController {
|
|
// 임시 자재 마스터 목록 조회
|
|
async getTempMaterials(req: Request, res: Response) {
|
|
try {
|
|
const { search, category, page, limit } = req.query;
|
|
|
|
const result = await MaterialService.getTempMaterials({
|
|
search: search as string,
|
|
category: category as string,
|
|
page: page ? parseInt(page as string) : 1,
|
|
limit: limit ? parseInt(limit as string) : 20,
|
|
});
|
|
|
|
return res.json({ success: true, ...result });
|
|
} catch (error: any) {
|
|
console.error("Error fetching temp materials:", error);
|
|
return res.status(500).json({
|
|
success: false,
|
|
message: "자재 목록 조회 중 오류가 발생했습니다.",
|
|
error: error.message,
|
|
});
|
|
}
|
|
}
|
|
|
|
// 특정 자재 상세 조회
|
|
async getTempMaterialByCode(req: Request, res: Response) {
|
|
try {
|
|
const { code } = req.params;
|
|
const material = await MaterialService.getTempMaterialByCode(code);
|
|
|
|
if (!material) {
|
|
return res.status(404).json({
|
|
success: false,
|
|
message: "자재를 찾을 수 없습니다.",
|
|
});
|
|
}
|
|
|
|
return res.json({ success: true, data: material });
|
|
} catch (error: any) {
|
|
console.error("Error fetching temp material:", error);
|
|
return res.status(500).json({
|
|
success: false,
|
|
message: "자재 조회 중 오류가 발생했습니다.",
|
|
error: error.message,
|
|
});
|
|
}
|
|
}
|
|
|
|
// 카테고리 목록 조회
|
|
async getCategories(req: Request, res: Response) {
|
|
try {
|
|
const categories = await MaterialService.getCategories();
|
|
return res.json({ success: true, data: categories });
|
|
} catch (error: any) {
|
|
console.error("Error fetching categories:", error);
|
|
return res.status(500).json({
|
|
success: false,
|
|
message: "카테고리 목록 조회 중 오류가 발생했습니다.",
|
|
error: error.message,
|
|
});
|
|
}
|
|
}
|
|
}
|
|
|
|
export default new MaterialController();
|