ERP-node/backend-node/src/controllers/deliveryController.ts

117 lines
2.9 KiB
TypeScript
Raw Normal View History

/**
* /
*/
import { Request, Response } from 'express';
import * as deliveryService from '../services/deliveryService';
/**
* GET /api/delivery/status
*
*/
export async function getDeliveryStatus(req: Request, res: Response): Promise<void> {
try {
const data = await deliveryService.getDeliveryStatus();
res.json({
success: true,
data,
});
} catch (error) {
console.error('배송 현황 조회 실패:', error);
res.status(500).json({
success: false,
message: '배송 현황 조회에 실패했습니다.',
});
}
}
/**
* GET /api/delivery/delayed
*
*/
export async function getDelayedDeliveries(req: Request, res: Response): Promise<void> {
try {
const deliveries = await deliveryService.getDelayedDeliveries();
res.json({
success: true,
data: deliveries,
});
} catch (error) {
console.error('지연 배송 조회 실패:', error);
res.status(500).json({
success: false,
message: '지연 배송 조회에 실패했습니다.',
});
}
}
/**
* GET /api/delivery/issues
*
*/
export async function getCustomerIssues(req: Request, res: Response): Promise<void> {
try {
const { status } = req.query;
const issues = await deliveryService.getCustomerIssues(status as string);
res.json({
success: true,
data: issues,
});
} catch (error) {
console.error('고객 이슈 조회 실패:', error);
res.status(500).json({
success: false,
message: '고객 이슈 조회에 실패했습니다.',
});
}
}
/**
* PUT /api/delivery/:id/status
*
*/
export async function updateDeliveryStatus(req: Request, res: Response): Promise<void> {
try {
const { id } = req.params;
const { status, delayReason } = req.body;
await deliveryService.updateDeliveryStatus(id, status, delayReason);
res.json({
success: true,
message: '배송 상태가 업데이트되었습니다.',
});
} catch (error) {
console.error('배송 상태 업데이트 실패:', error);
res.status(500).json({
success: false,
message: '배송 상태 업데이트에 실패했습니다.',
});
}
}
/**
* PUT /api/delivery/issues/:id/status
*
*/
export async function updateIssueStatus(req: Request, res: Response): Promise<void> {
try {
const { id } = req.params;
const { status } = req.body;
await deliveryService.updateIssueStatus(id, status);
res.json({
success: true,
message: '이슈 상태가 업데이트되었습니다.',
});
} catch (error) {
console.error('이슈 상태 업데이트 실패:', error);
res.status(500).json({
success: false,
message: '이슈 상태 업데이트에 실패했습니다.',
});
}
}