refactor: centralize auth middleware and standardize logging

1. API Key Middleware (api.ts)
- Create apiKeyAuth Hono middleware with timing-safe comparison
- Apply to /deposit/balance and /deposit/deduct routes
- Remove duplicate requireApiKey() calls from handlers
- Reduce ~15 lines of duplicated code

2. Logger Standardization (6 files, 27 replacements)
- webhook.ts: 2 console.error → logger
- message-handler.ts: 7 console → logger
- deposit-matcher.ts: 4 console → logger
- n8n-service.ts: 3 console.error → logger
- circuit-breaker.ts: 8 console → logger
- retry.ts: 3 console → logger

Benefits:
- Single point of auth change
- Structured logging with context
- Better observability in production

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
kappa
2026-01-29 09:58:15 +09:00
parent 86af187aa1
commit 3cfcb06f27
7 changed files with 104 additions and 61 deletions

View File

@@ -75,7 +75,7 @@ JSON:`;
};
}
} catch (error) {
console.error('Intent analysis error:', error);
logger.error('Intent analysis error', error as Error);
}
// 기본값: 일반 대화
@@ -114,7 +114,12 @@ export async function callN8n(
});
if (!response.ok) {
console.error('n8n error:', response.status, await response.text());
const errorText = await response.text();
logger.error('n8n API error', new Error(`Status ${response.status}: ${errorText}`), {
status: response.status,
userId,
type
});
return { error: `n8n 호출 실패 (${response.status})` };
}
@@ -128,7 +133,7 @@ export async function callN8n(
return parseResult.data;
} catch (error) {
console.error('n8n fetch error:', error);
logger.error('n8n fetch error', error as Error, { userId, type });
return { error: 'n8n 연결 실패' };
}
}