feat: implement server start/stop functionality
- Replace stub implementations with actual API calls
- POST /api/provision/orders/{order_id}/start
- POST /api/provision/orders/{order_id}/stop
- Add proper validation, logging, and error handling
- Follow existing code patterns (callProvisionAPI, __DIRECT__)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -843,23 +843,69 @@ export async function executeServerAction(
|
||||
}
|
||||
|
||||
case 'start': {
|
||||
const { server_id } = args;
|
||||
const { order_id } = args;
|
||||
|
||||
if (!server_id) {
|
||||
return '🚫 서버 시작에는 server_id가 필요합니다.';
|
||||
if (!order_id) {
|
||||
return '🚫 서버 시작에는 order_id가 필요합니다.';
|
||||
}
|
||||
|
||||
return '🚧 서버 시작 기능은 준비 중입니다.\n\n현재 서버 추천 기능만 사용 가능합니다.';
|
||||
if (!telegramUserId) {
|
||||
return '🚫 사용자 인증이 필요합니다.';
|
||||
}
|
||||
|
||||
if (!env) {
|
||||
return '🚫 환경 설정이 필요합니다.';
|
||||
}
|
||||
|
||||
// Call the provision API to start the server
|
||||
const result = await callProvisionAPI(
|
||||
`/api/provision/orders/${order_id}/start`,
|
||||
'POST',
|
||||
env,
|
||||
undefined,
|
||||
telegramUserId
|
||||
);
|
||||
|
||||
if (result.error) {
|
||||
return `🚫 서버 시작 실패: ${result.error}`;
|
||||
}
|
||||
|
||||
logger.info('서버 시작 요청', { userId: maskUserId(telegramUserId), orderId: order_id });
|
||||
|
||||
return `__DIRECT__\n✅ 서버 시작 요청이 완료되었습니다.\n\n• 주문번호: #${order_id}\n• 상태: 시작 중...\n\n⏳ 서버가 시작되기까지 1-2분 소요될 수 있습니다.`;
|
||||
}
|
||||
|
||||
case 'stop': {
|
||||
const { server_id } = args;
|
||||
const { order_id } = args;
|
||||
|
||||
if (!server_id) {
|
||||
return '🚫 서버 중지에는 server_id가 필요합니다.';
|
||||
if (!order_id) {
|
||||
return '🚫 서버 중지에는 order_id가 필요합니다.';
|
||||
}
|
||||
|
||||
return '🚧 서버 중지 기능은 준비 중입니다.\n\n현재 서버 추천 기능만 사용 가능합니다.';
|
||||
if (!telegramUserId) {
|
||||
return '🚫 사용자 인증이 필요합니다.';
|
||||
}
|
||||
|
||||
if (!env) {
|
||||
return '🚫 환경 설정이 필요합니다.';
|
||||
}
|
||||
|
||||
// Call the provision API to stop the server
|
||||
const result = await callProvisionAPI(
|
||||
`/api/provision/orders/${order_id}/stop`,
|
||||
'POST',
|
||||
env,
|
||||
undefined,
|
||||
telegramUserId
|
||||
);
|
||||
|
||||
if (result.error) {
|
||||
return `🚫 서버 중지 실패: ${result.error}`;
|
||||
}
|
||||
|
||||
logger.info('서버 중지 요청', { userId: maskUserId(telegramUserId), orderId: order_id });
|
||||
|
||||
return `__DIRECT__\n✅ 서버 중지 요청이 완료되었습니다.\n\n• 주문번호: #${order_id}\n• 상태: 중지 중...\n\n⏳ 서버가 중지되기까지 1-2분 소요될 수 있습니다.`;
|
||||
}
|
||||
|
||||
case 'list': {
|
||||
|
||||
Reference in New Issue
Block a user