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': {
|
case 'start': {
|
||||||
const { server_id } = args;
|
const { order_id } = args;
|
||||||
|
|
||||||
if (!server_id) {
|
if (!order_id) {
|
||||||
return '🚫 서버 시작에는 server_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': {
|
case 'stop': {
|
||||||
const { server_id } = args;
|
const { order_id } = args;
|
||||||
|
|
||||||
if (!server_id) {
|
if (!order_id) {
|
||||||
return '🚫 서버 중지에는 server_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': {
|
case 'list': {
|
||||||
|
|||||||
Reference in New Issue
Block a user