import {
successResponse,
errorResponse,
ValidationError,
NotFoundError,
logger
} from '@trendingsociety/api';
export async function POST(request: Request) {
try {
const body = await request.json();
// Validate
if (!body.email) {
throw new ValidationError('Email is required');
}
// Process
logger.info('Creating user', { email: body.email });
const user = await createUser(body);
// Success
return successResponse(user, { status: 201 });
} catch (error) {
logger.error('User creation failed', { error: error.message });
if (error instanceof ValidationError) {
return errorResponse(error.message, 400, 'VALIDATION_ERROR');
}
if (error instanceof NotFoundError) {
return errorResponse(error.message, 404, 'NOT_FOUND');
}
return errorResponse('Internal server error', 500, 'INTERNAL_ERROR');
}
}