import { APIGatewayProxyEvent, APIGatewayProxyResult, Context } from 'aws-lambda'; import { prismaClient } from '../../../../../common/database/prisma.lambda.service'; import { safeHandler } from '../../../../../common/utils/handlers/safeHandler'; import ApiError from '../../../../../common/utils/helper/ApiError'; import { HostService } from '../../../services/host.service'; import { verifyMinglarAdminHostToken } from '../../../../../common/middlewares/jwt/authForMinglarAdminHost'; const hostService = new HostService(prismaClient); export const handler = safeHandler(async ( event: APIGatewayProxyEvent, context?: Context ): Promise => { // Extract token from headers const token = event.headers['x-auth-token'] || event.headers['X-Auth-Token'] if (!token) { throw new ApiError(400, 'This is a protected route. Please provide a valid token.'); } // Authenticate user using the shared authForHost function await verifyMinglarAdminHostToken(token); const activity_xid = event.queryStringParameters?.activity_xid ? Number(event.queryStringParameters.activity_xid) : null; if (!activity_xid) { throw new ApiError(409, "Activity ID is required") } const result = await hostService.getAllPQQQuesAndSubmittedAns(Number(activity_xid)); return { statusCode: 200, headers: { 'Content-Type': 'application/json', 'Access-Control-Allow-Origin': '*', }, body: JSON.stringify({ success: true, message: 'Data retrieved successfully', data: result, }), }; });