Add detailed error logging to API and email generation
This commit is contained in:
12
src/index.ts
12
src/index.ts
@@ -44,7 +44,14 @@ const app = new Elysia()
|
||||
)
|
||||
|
||||
// Error handler
|
||||
.onError(({ code, error, set }) => {
|
||||
.onError(({ code, error, set, path }) => {
|
||||
// Always log errors with full details
|
||||
console.error(`[${new Date().toISOString()}] ERROR on ${path}:`, {
|
||||
code,
|
||||
message: error.message,
|
||||
stack: error.stack,
|
||||
});
|
||||
|
||||
if (code === 'VALIDATION') {
|
||||
set.status = 400;
|
||||
return { error: 'Validation error', details: error.message };
|
||||
@@ -60,9 +67,8 @@ const app = new Elysia()
|
||||
return { error: error.message };
|
||||
}
|
||||
|
||||
console.error('Error:', error);
|
||||
set.status = 500;
|
||||
return { error: 'Internal server error' };
|
||||
return { error: 'Internal server error', details: error.message };
|
||||
})
|
||||
|
||||
.listen(process.env.PORT || 3000);
|
||||
|
||||
@@ -27,7 +27,12 @@ export const emailRoutes = new Elysia({ prefix: '/emails' })
|
||||
}
|
||||
|
||||
// Generate email content
|
||||
const content = await generateEmail({
|
||||
console.log(`[${new Date().toISOString()}] Generating email for client ${client.firstName}, purpose: ${body.purpose}`);
|
||||
let content: string;
|
||||
let subject: string;
|
||||
|
||||
try {
|
||||
content = await generateEmail({
|
||||
advisorName: user.name,
|
||||
clientName: client.firstName,
|
||||
interests: client.interests || [],
|
||||
@@ -35,9 +40,20 @@ export const emailRoutes = new Elysia({ prefix: '/emails' })
|
||||
purpose: body.purpose,
|
||||
provider: body.provider,
|
||||
});
|
||||
console.log(`[${new Date().toISOString()}] Email content generated successfully`);
|
||||
} catch (e) {
|
||||
console.error(`[${new Date().toISOString()}] Failed to generate email content:`, e);
|
||||
throw e;
|
||||
}
|
||||
|
||||
// Generate subject
|
||||
const subject = await generateSubject(body.purpose, client.firstName, body.provider);
|
||||
try {
|
||||
subject = await generateSubject(body.purpose, client.firstName, body.provider);
|
||||
console.log(`[${new Date().toISOString()}] Email subject generated successfully`);
|
||||
} catch (e) {
|
||||
console.error(`[${new Date().toISOString()}] Failed to generate subject:`, e);
|
||||
throw e;
|
||||
}
|
||||
|
||||
// Save as draft
|
||||
const [communication] = await db.insert(communications)
|
||||
|
||||
Reference in New Issue
Block a user