From 3b723e5d1f8193187b2e5c284d283c3a316cba54 Mon Sep 17 00:00:00 2001 From: Mayank Mishra Date: Tue, 2 Dec 2025 20:09:42 +0530 Subject: [PATCH] made accept pq by am api --- serverless/functions/minglaradmin.yml | 18 ++++++- src/common/utils/constants/host.constant.ts | 12 +++-- src/modules/host/services/host.service.ts | 2 +- .../handlers/hosthub/hosts/acceptPQByAM.ts | 49 +++++++++++++++++++ .../handlers/hosthub/hosts/rejectPQQbyAM.ts | 4 +- .../minglaradmin/services/minglar.service.ts | 33 +++++++++++-- 6 files changed, 106 insertions(+), 12 deletions(-) create mode 100644 src/modules/minglaradmin/handlers/hosthub/hosts/acceptPQByAM.ts diff --git a/serverless/functions/minglaradmin.yml b/serverless/functions/minglaradmin.yml index bed9504..dae7c75 100644 --- a/serverless/functions/minglaradmin.yml +++ b/serverless/functions/minglaradmin.yml @@ -325,7 +325,23 @@ RejectPQQByAM: - ${file(./serverless/patterns/base.yml):pattern4} events: - httpApi: - path: /minglaradmin/hosthub/hosts/reject-pqq-by-am + path: /minglaradmin/hosthub/hosts/reject-pq-by-am + method: patch + +acceptPQByAM: + handler: src/modules/minglaradmin/handlers/hosthub/hosts/acceptPQByAM.handler + memorySize: 384 + package: + patterns: + - 'src/modules/minglaradmin/handlers/hosthub/hosts/acceptPQByAM**' + - 'src/modules/minglaradmin/services/**' + - ${file(./serverless/patterns/base.yml):pattern1} + - ${file(./serverless/patterns/base.yml):pattern2} + - ${file(./serverless/patterns/base.yml):pattern3} + - ${file(./serverless/patterns/base.yml):pattern4} + events: + - httpApi: + path: /minglaradmin/hosthub/hosts/accept-pq-by-am method: patch rejectHostApplication: diff --git a/src/common/utils/constants/host.constant.ts b/src/common/utils/constants/host.constant.ts index 63115d7..697383d 100644 --- a/src/common/utils/constants/host.constant.ts +++ b/src/common/utils/constants/host.constant.ts @@ -31,7 +31,8 @@ export const ACTIVITY_INTERNAL_STATUS = { UNDER_REVIEW: 'Under-Review', PQ_FAILED: 'PQ Failed', PQ_TO_UPDATE: 'PQ To Update', - PQ_SUBMITTED: 'PQ Submitted' + PQ_SUBMITTED: 'PQ Submitted', + PQ_APPROVED: 'PQ Approved' } export const ACTIVITY_DISPLAY_STATUS = { @@ -42,7 +43,8 @@ export const ACTIVITY_DISPLAY_STATUS = { UNDER_REVIEW: 'Under-Review', PQ_FAILED: 'PQ Failed', ENHANCING: 'Enchancing', - PQ_IN_REVIEW: 'PQ In Review' + PQ_IN_REVIEW: 'PQ In Review', + PQ_APPROVED: 'PQ Approved' } export const ACTIVITY_AM_INTERNAL_STATUS = { @@ -53,7 +55,8 @@ export const ACTIVITY_AM_INTERNAL_STATUS = { UNDER_REVIEW: 'Under-Review', PQ_FAILED: 'PQ Failed', PQ_REJECTED: 'PQ Rejected', - PQ_TO_REVIEW: 'PQ To Review' + PQ_TO_REVIEW: 'PQ To Review', + PQ_APPROVED: 'PQ Approved' } export const ACTIVITY_AM_DISPLAY_STATUS = { @@ -64,5 +67,6 @@ export const ACTIVITY_AM_DISPLAY_STATUS = { UNDER_REVIEW: 'Under-Review', PQ_FAILED: 'PQ Failed', ENHANCING: 'Enchancing', - NEW: 'New' + NEW: 'New', + PQ_APPROVED: 'PQ Approved' } \ No newline at end of file diff --git a/src/modules/host/services/host.service.ts b/src/modules/host/services/host.service.ts index 0794b04..3325690 100644 --- a/src/modules/host/services/host.service.ts +++ b/src/modules/host/services/host.service.ts @@ -54,7 +54,7 @@ export async function generateActivityRefNumber(tx: any) { } function round2(value: number) { - return Math.round(value * 100) / 100; + return Math.round(value); } const bucket = config.aws.bucketName; diff --git a/src/modules/minglaradmin/handlers/hosthub/hosts/acceptPQByAM.ts b/src/modules/minglaradmin/handlers/hosthub/hosts/acceptPQByAM.ts new file mode 100644 index 0000000..2a82feb --- /dev/null +++ b/src/modules/minglaradmin/handlers/hosthub/hosts/acceptPQByAM.ts @@ -0,0 +1,49 @@ +import { verifyMinglarAdminToken } from '@/common/middlewares/jwt/authForMinglarAdmin'; +import { MinglarService } from '@/modules/minglaradmin/services/minglar.service'; +import { APIGatewayProxyEvent, APIGatewayProxyResult, Context } from 'aws-lambda'; +import { PrismaService } from '../../../../../common/database/prisma.service'; +import { safeHandler } from '../../../../../common/utils/handlers/safeHandler'; +import ApiError from '../../../../../common/utils/helper/ApiError'; + +const prismaService = new PrismaService(); +const minglarService = new MinglarService(prismaService); + +export const handler = safeHandler(async ( + event: APIGatewayProxyEvent, + context?: Context +): Promise => { + 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.'); + + const userInfo = await verifyMinglarAdminToken(token); + + let body: any = {}; + try { + body = event.body ? JSON.parse(event.body) : {}; + } catch (err) { + throw new ApiError(400, 'Invalid JSON in request body'); + } + + const activityId = event.pathParameters?.activityId; + + if (!activityId) { + throw new ApiError(400, 'activityId is required'); + } + + await minglarService.acceptPQByAM( + Number(activityId), + ); + + return { + statusCode: 201, + headers: { + 'Content-Type': 'application/json', + 'Access-Control-Allow-Origin': '*', + }, + body: JSON.stringify({ + success: true, + message: 'Approved PQ successfully', + data: null, + }), + }; +}); diff --git a/src/modules/minglaradmin/handlers/hosthub/hosts/rejectPQQbyAM.ts b/src/modules/minglaradmin/handlers/hosthub/hosts/rejectPQQbyAM.ts index 80f8d4b..4f5e872 100644 --- a/src/modules/minglaradmin/handlers/hosthub/hosts/rejectPQQbyAM.ts +++ b/src/modules/minglaradmin/handlers/hosthub/hosts/rejectPQQbyAM.ts @@ -24,7 +24,7 @@ export const handler = safeHandler(async ( throw new ApiError(400, 'Invalid JSON in request body'); } - const { activityId } = body; + const activityId = event.pathParameters?.activityId; if (!activityId) { throw new ApiError(400, 'activityId is required'); @@ -42,7 +42,7 @@ export const handler = safeHandler(async ( }, body: JSON.stringify({ success: true, - message: 'Rejected successfully', + message: 'Rejected PQ successfully', data: null, }), }; diff --git a/src/modules/minglaradmin/services/minglar.service.ts b/src/modules/minglaradmin/services/minglar.service.ts index 9c1c0be..51b2f8e 100644 --- a/src/modules/minglaradmin/services/minglar.service.ts +++ b/src/modules/minglaradmin/services/minglar.service.ts @@ -256,11 +256,21 @@ export class MinglarService { } async getAllHostActivityForMinglar(search?: string, hostXid?: number) { + + const where: any = { + isActive: true, + hostXid: hostXid + }; + + if (search && search.trim() !== '') { + const q = search.trim(); + where.OR = [ + { activityTypeName: { contains: q, mode: 'insensitive' } }, + { interests: { interestName: { contains: q, mode: 'insensitive' } } }, + ]; + } const hostActivities = await this.prisma.activities.findMany({ - where: { - isActive: true, - ...(hostXid ? { hostXid } : {}), // Add only if provided - }, + where, include: { ActivitiesMedia: { select: { @@ -1678,6 +1688,21 @@ export class MinglarService { }) } + async acceptPQByAM(activityId: number) { + return await this.prisma.activities.update({ + where: { + id: activityId, + isActive: true + }, + data: { + activityInternalStatus: ACTIVITY_INTERNAL_STATUS.PQ_APPROVED, + activityDisplayStatus: ACTIVITY_DISPLAY_STATUS.PQ_APPROVED, + amInternalStatus: ACTIVITY_AM_INTERNAL_STATUS.PQ_APPROVED, + amDisplayStatus: ACTIVITY_AM_DISPLAY_STATUS.PQ_APPROVED + } + }) + } + async getHostDetailsById(host_xid) { const host = await this.prisma.hostHeader.findFirst({ where: { id: host_xid },