@@ -77,54 +77,57 @@ async function checkEmailDuplicate(
7777 return false ;
7878}
7979
80- const app = new Elysia ( { prefix : '/email' } )
81- . post ( '/' , async ( { body, request } : { body : unknown ; request : Request } ) => {
82- // Validate API key
83- if ( ! validateApiKey ( request ) ) {
84- return {
85- status : 'error' ,
86- message : 'Invalid or missing API key' ,
87- } ;
88- }
80+ const app = new Elysia ( )
81+ . post (
82+ '/email' ,
83+ async ( { body, request } : { body : unknown ; request : Request } ) => {
84+ // Validate API key
85+ if ( ! validateApiKey ( request ) ) {
86+ return {
87+ status : 'error' ,
88+ message : 'Invalid or missing API key' ,
89+ } ;
90+ }
8991
90- // Validate schema
91- const parseResult = emailEventSchema . safeParse ( body ) ;
92- if ( ! parseResult . success ) {
93- return {
94- status : 'error' ,
95- message : 'Invalid email event schema' ,
96- errors : parseResult . error . issues ,
97- } ;
98- }
92+ // Validate schema
93+ const parseResult = emailEventSchema . safeParse ( body ) ;
94+ if ( ! parseResult . success ) {
95+ return {
96+ status : 'error' ,
97+ message : 'Invalid email event schema' ,
98+ errors : parseResult . error . issues ,
99+ } ;
100+ }
99101
100- const emailData = parseResult . data ;
101- const emailHash = hashEmailId ( emailData . email_id , emailData . domain ) ;
102- const eventTime = emailData . event_time || Date . now ( ) ;
102+ const emailData = parseResult . data ;
103+ const emailHash = hashEmailId ( emailData . email_id , emailData . domain ) ;
104+ const eventTime = emailData . event_time || Date . now ( ) ;
103105
104- if ( await checkEmailDuplicate ( emailHash , eventTime ) ) {
105- return { status : 'success' , message : 'Duplicate event ignored' } ;
106- }
106+ if ( await checkEmailDuplicate ( emailHash , eventTime ) ) {
107+ return { status : 'success' , message : 'Duplicate event ignored' } ;
108+ }
107109
108- try {
109- await insertEmailEvent ( emailData ) ;
110- return {
111- status : 'success' ,
112- type : 'email' ,
113- event_id : emailHash ,
114- } ;
115- } catch ( error ) {
116- logger . error ( 'Email event processing failed' , {
117- error : error as Error ,
118- domain : emailData . domain ,
119- } ) ;
120- return {
121- status : 'error' ,
122- message : 'Failed to process email event' ,
123- } ;
110+ try {
111+ await insertEmailEvent ( emailData ) ;
112+ return {
113+ status : 'success' ,
114+ type : 'email' ,
115+ event_id : emailHash ,
116+ } ;
117+ } catch ( error ) {
118+ logger . error ( 'Email event processing failed' , {
119+ error : error as Error ,
120+ domain : emailData . domain ,
121+ } ) ;
122+ return {
123+ status : 'error' ,
124+ message : 'Failed to process email event' ,
125+ } ;
126+ }
124127 }
125- } )
128+ )
126129 . post (
127- '/batch' ,
130+ '/email/ batch' ,
128131 async ( { body, request } : { body : unknown ; request : Request } ) => {
129132 // Validate API key
130133 if ( ! validateApiKey ( request ) ) {
0 commit comments