@@ -7,7 +7,7 @@ import { renderOTPEmail } from '@/components/emails'
77import { requestChatEmailOtpContract , verifyChatEmailOtpContract } from '@/lib/api/contracts/chats'
88import { getValidationErrorMessage , parseRequest } from '@/lib/api/server'
99import { RateLimiter } from '@/lib/core/rate-limiter'
10- import { addCorsHeaders , isEmailAllowed } from '@/lib/core/security/deployment'
10+ import { isEmailAllowed } from '@/lib/core/security/deployment'
1111import {
1212 decodeOTPValue ,
1313 deleteOTP ,
@@ -47,15 +47,12 @@ export const POST = withRouteHandler(
4747 )
4848 const response = createErrorResponse ( 'Too many requests. Please try again later.' , 429 )
4949 response . headers . set ( 'Retry-After' , String ( retryAfter ) )
50- return addCorsHeaders ( response , request )
50+ return response
5151 }
5252
5353 const parsed = await parseRequest ( requestChatEmailOtpContract , request , context , {
5454 validationErrorResponse : ( error ) =>
55- addCorsHeaders (
56- createErrorResponse ( getValidationErrorMessage ( error , 'Invalid request' ) , 400 ) ,
57- request
58- ) ,
55+ createErrorResponse ( getValidationErrorMessage ( error , 'Invalid request' ) , 400 ) ,
5956 } )
6057 if ( ! parsed . success ) return parsed . response
6158 const { email } = parsed . data . body
@@ -75,27 +72,21 @@ export const POST = withRouteHandler(
7572
7673 if ( deploymentResult . length === 0 ) {
7774 logger . warn ( `[${ requestId } ] Chat not found for identifier: ${ identifier } ` )
78- return addCorsHeaders ( createErrorResponse ( 'Chat not found' , 404 ) , request )
75+ return createErrorResponse ( 'Chat not found' , 404 )
7976 }
8077
8178 const deployment = deploymentResult [ 0 ]
8279
8380 if ( deployment . authType !== 'email' ) {
84- return addCorsHeaders (
85- createErrorResponse ( 'This chat does not use email authentication' , 400 ) ,
86- request
87- )
81+ return createErrorResponse ( 'This chat does not use email authentication' , 400 )
8882 }
8983
9084 const allowedEmails : string [ ] = Array . isArray ( deployment . allowedEmails )
9185 ? deployment . allowedEmails
9286 : [ ]
9387
9488 if ( ! isEmailAllowed ( email , allowedEmails ) ) {
95- return addCorsHeaders (
96- createErrorResponse ( 'Email not authorized for this chat' , 403 ) ,
97- request
98- )
89+ return createErrorResponse ( 'Email not authorized for this chat' , 403 )
9990 }
10091
10192 const emailRateLimit = await rateLimiter . checkRateLimitDirect (
@@ -114,7 +105,7 @@ export const POST = withRouteHandler(
114105 429
115106 )
116107 response . headers . set ( 'Retry-After' , String ( retryAfter ) )
117- return addCorsHeaders ( response , request )
108+ return response
118109 }
119110
120111 const otp = generateOTP ( )
@@ -135,17 +126,14 @@ export const POST = withRouteHandler(
135126
136127 if ( ! emailResult . success ) {
137128 logger . error ( `[${ requestId } ] Failed to send OTP email:` , emailResult . message )
138- return addCorsHeaders (
139- createErrorResponse ( 'Failed to send verification email' , 500 ) ,
140- request
141- )
129+ return createErrorResponse ( 'Failed to send verification email' , 500 )
142130 }
143131
144132 logger . info ( `[${ requestId } ] OTP sent to ${ email } for chat ${ deployment . id } ` )
145- return addCorsHeaders ( createSuccessResponse ( { message : 'Verification code sent' } ) , request )
133+ return createSuccessResponse ( { message : 'Verification code sent' } )
146134 } catch ( error ) {
147135 logger . error ( `[${ requestId } ] Error processing OTP request:` , error )
148- return addCorsHeaders ( createErrorResponse ( 'Failed to process request' , 500 ) , request )
136+ return createErrorResponse ( 'Failed to process request' , 500 )
149137 }
150138 }
151139)
@@ -158,10 +146,7 @@ export const PUT = withRouteHandler(
158146 try {
159147 const parsed = await parseRequest ( verifyChatEmailOtpContract , request , context , {
160148 validationErrorResponse : ( error ) =>
161- addCorsHeaders (
162- createErrorResponse ( getValidationErrorMessage ( error , 'Invalid request' ) , 400 ) ,
163- request
164- ) ,
149+ createErrorResponse ( getValidationErrorMessage ( error , 'Invalid request' ) , 400 ) ,
165150 } )
166151 if ( ! parsed . success ) return parsed . response
167152 const { email, otp } = parsed . data . body
@@ -184,61 +169,49 @@ export const PUT = withRouteHandler(
184169
185170 if ( deploymentResult . length === 0 ) {
186171 logger . warn ( `[${ requestId } ] Chat not found for identifier: ${ identifier } ` )
187- return addCorsHeaders ( createErrorResponse ( 'Chat not found' , 404 ) , request )
172+ return createErrorResponse ( 'Chat not found' , 404 )
188173 }
189174
190175 const deployment = deploymentResult [ 0 ]
191176
192177 const storedValue = await getOTP ( 'chat' , deployment . id , email )
193178 if ( ! storedValue ) {
194- return addCorsHeaders (
195- createErrorResponse ( 'No verification code found, request a new one' , 400 ) ,
196- request
197- )
179+ return createErrorResponse ( 'No verification code found, request a new one' , 400 )
198180 }
199181
200182 const { otp : storedOTP , attempts } = decodeOTPValue ( storedValue )
201183
202184 if ( attempts >= MAX_OTP_ATTEMPTS ) {
203185 await deleteOTP ( 'chat' , deployment . id , email )
204186 logger . warn ( `[${ requestId } ] OTP already locked out for ${ email } ` )
205- return addCorsHeaders (
206- createErrorResponse ( 'Too many failed attempts. Please request a new code.' , 429 ) ,
207- request
208- )
187+ return createErrorResponse ( 'Too many failed attempts. Please request a new code.' , 429 )
209188 }
210189
211190 if ( storedOTP !== otp ) {
212191 const result = await incrementOTPAttempts ( 'chat' , deployment . id , email , storedValue )
213192 if ( result === 'locked' ) {
214193 logger . warn ( `[${ requestId } ] OTP invalidated after max failed attempts for ${ email } ` )
215- return addCorsHeaders (
216- createErrorResponse ( 'Too many failed attempts. Please request a new code.' , 429 ) ,
217- request
218- )
194+ return createErrorResponse ( 'Too many failed attempts. Please request a new code.' , 429 )
219195 }
220- return addCorsHeaders ( createErrorResponse ( 'Invalid verification code' , 400 ) , request )
196+ return createErrorResponse ( 'Invalid verification code' , 400 )
221197 }
222198
223199 await deleteOTP ( 'chat' , deployment . id , email )
224200
225- const response = addCorsHeaders (
226- createSuccessResponse ( {
227- id : deployment . id ,
228- title : deployment . title ,
229- description : deployment . description ,
230- customizations : deployment . customizations ,
231- authType : deployment . authType ,
232- outputConfigs : deployment . outputConfigs ,
233- } ) ,
234- request
235- )
201+ const response = createSuccessResponse ( {
202+ id : deployment . id ,
203+ title : deployment . title ,
204+ description : deployment . description ,
205+ customizations : deployment . customizations ,
206+ authType : deployment . authType ,
207+ outputConfigs : deployment . outputConfigs ,
208+ } )
236209 setChatAuthCookie ( response , deployment . id , deployment . authType , deployment . password )
237210
238211 return response
239212 } catch ( error ) {
240213 logger . error ( `[${ requestId } ] Error verifying OTP:` , error )
241- return addCorsHeaders ( createErrorResponse ( 'Failed to process request' , 500 ) , request )
214+ return createErrorResponse ( 'Failed to process request' , 500 )
242215 }
243216 }
244217)
0 commit comments