import { APIGatewayProxyEvent, APIGatewayProxyResult, Context, } from 'aws-lambda'; import { safeHandler } from '../../../common/utils/handlers/safeHandler'; import { PrismaService } from '../../../common/database/prisma.service'; import { MinglarService } from '../services/minglar.service'; import ApiError from '../../../common/utils/helper/ApiError'; import { verifyMinglarAdminToken } from '../../../common/middlewares/jwt/authForMinglarAdmin'; import { parseQueryParams } from '../../../common/utils/validation/validation.utils'; import { getAmDetailByIdPathSchema } from '../../../common/utils/validation/prepopulate/prepopulate.validation'; const prismaService = new PrismaService(); const minglarService = new MinglarService(prismaService); /** * Get AM details by ID handler */ export const handler = safeHandler( async ( event: APIGatewayProxyEvent, context?: Context, ): Promise => { // Verify authentication token const token = event.headers['x-auth-token'] || event.headers['X-Auth-Token']; if (!token) { throw new ApiError( 401, 'This is a protected route. Please provide a valid token.', ); } await verifyMinglarAdminToken(token); // Parse and validate path params using Zod const { amXid } = parseQueryParams(event.pathParameters, getAmDetailByIdPathSchema); // Get AM details by ID from service const getAmDetailsByid = await minglarService.getAMdetailById(amXid); return { statusCode: 200, headers: { 'Content-Type': 'application/json', 'Access-Control-Allow-Origin': '*', }, body: JSON.stringify({ success: true, message: 'Account Manager details retrieved successfully', data: getAmDetailsByid, }), }; }, );