diff --git a/.gitignore b/.gitignore index 56e0662..96467e3 100644 --- a/.gitignore +++ b/.gitignore @@ -86,6 +86,9 @@ web_modules/ # Optional npm cache directory .npm +#package.lock.json +.package-lock.json + # Optional eslint cache .eslintcache diff --git a/serverless/functions/minglaradmin.yml b/serverless/functions/minglaradmin.yml index e58fdb0..28953ed 100644 --- a/serverless/functions/minglaradmin.yml +++ b/serverless/functions/minglaradmin.yml @@ -125,48 +125,51 @@ inviteTeammate: method: post getAllHostApplication: - handler: src/modules/minglaradmin/handlers/getAllHostApplication.handler + handler: src/modules/minglaradmin/handlers/hosthub/hosts/getAllHostApplication.handler memorySize: 512 package: patterns: - - 'src/modules/minglaradmin/**' + - 'src/modules/minglaradmin/handlers/hosthub/hosts/**' + - '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/get-all-host-applications-am + path: /minglaradmin/hosthub/hosts/get-all-host-applications-am method: get getAllOnboardingHostApplications: - handler: src/modules/minglaradmin/handlers/getAllOnboardingHosts.handler + handler: src/modules/minglaradmin/handlers/hosthub/onboarding/getAllOnboardingHosts.handler memorySize: 512 package: patterns: - - 'src/modules/minglaradmin/**' + - 'src/modules/minglaradmin/handlers/hosthub/onboarding/**' + - '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/get-all-host-applications-admin + path: /minglaradmin/hosthub/onboarding/get-all-host-applications-admin method: get getAllOnboardingHostApplications_New: - handler: src/modules/minglaradmin/handlers/getOnboardingNewApplications.handler + handler: src/modules/minglaradmin/handlers/hosthub/onboarding/getOnboardingNewApplications.handler memorySize: 512 package: patterns: - - 'src/modules/minglaradmin/**' + - 'src/modules/minglaradmin/handlers/hosthub/onboarding/**' + - '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/get-all-host-applications-admin-new + path: /minglaradmin/hosthub/onboarding/get-all-host-applications-admin-new method: get getAllInvitationDetails: @@ -185,18 +188,19 @@ getAllInvitationDetails: method: get addSuggestion: - handler: src/modules/minglaradmin/handlers/addSuggestion.handler + handler: src/modules/minglaradmin/handlers/hosthub/hosts/addSuggestion.handler memorySize: 384 package: patterns: - - 'src/modules/minglaradmin/**' + - 'src/modules/minglaradmin/handlers/hosthub/hosts/**' + - '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/add-suggestion + path: /minglaradmin/hosthub/hosts/add-suggestion method: post getAllCoadminAndAMDetails: @@ -230,109 +234,113 @@ getAllInvitedCoadminAndAMDetails: method: get assignAMToHost: - handler: src/modules/minglaradmin/handlers/assignAM.handler + handler: src/modules/minglaradmin/handlers/hosthub/onboarding/assignAM.handler memorySize: 384 package: patterns: - - 'src/modules/minglaradmin/**' + - 'src/modules/minglaradmin/handlers/hosthub/onboarding/**' + - '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/assign-am + path: /minglaradmin/hosthub/onboarding/assign-am method: post editAgreementDetails: - handler: src/modules/minglaradmin/handlers/editAgreementDetails.handler + handler: src/modules/minglaradmin/handlers/hosthub/onboarding/editAgreementDetails.handler memorySize: 384 package: patterns: - - 'src/modules/minglaradmin/**' + - 'src/modules/minglaradmin/handlers/hosthub/onboarding/**' + - '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/edit-agreement + path: /minglaradmin/hosthub/onboarding/edit-agreement method: patch acceptHostApplication: - handler: src/modules/minglaradmin/handlers/acceptHostApplication.handler + handler: src/modules/minglaradmin/handlers/hosthub/hosts/acceptHostApplication.handler memorySize: 384 package: patterns: - - 'src/modules/minglaradmin/**' + - 'src/modules/minglaradmin/handlers/hosthub/hosts/**' + - '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/accept-host-application + path: /minglaradmin/hosthub/hosts/accept-host-application method: post acceptHostApplicationMinglar: - handler: src/modules/minglaradmin/handlers/acceptHostAppMinglar.handler + handler: src/modules/minglaradmin/handlers/hosthub/onboarding/acceptHostAppMinglar.handler memorySize: 384 package: patterns: - - 'src/modules/minglaradmin/**' + - 'src/modules/minglaradmin/handlers/hosthub/onboarding/**' + - '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/accept-host-application-minglar + path: /minglaradmin/hosthub/onboarding/accept-host-application-minglar method: post rejectHostApplication: - handler: src/modules/minglaradmin/handlers/rejectHostApplication.handler + handler: src/modules/minglaradmin/handlers/hosthub/onboarding/rejectHostApplication.handler memorySize: 384 package: patterns: - - 'src/modules/minglaradmin/**' + - 'src/modules/minglaradmin/handlers/hosthub/onboarding/**' + - '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/reject-host-application + path: /minglaradmin/hosthub/onboarding/reject-host-application method: post rejectHostApplicationAM: - handler: src/modules/minglaradmin/handlers/rejectHostApplicationAM.handler + handler: src/modules/minglaradmin/handlers/hosthub/hosts/rejectHostApplicationAM.handler memorySize: 384 package: patterns: - - 'src/modules/minglaradmin/**' + - 'src/modules/minglaradmin/handlers/hosthub/hosts/**' + - '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/reject-host-application-am + path: /minglaradmin/hosthub/hosts/reject-host-application-am method: post - addPQQSuggestion: - handler: src/modules/minglar/handlers/addPQQSuggestion.handler + handler: src/modules/minglar/handlers/hosthub/hosts/addPQQSuggestion.handler memorySize: 384 package: patterns: - - 'src/modules/minglar/**' + - 'src/modules/minglar/handlers/hosthub/hosts/**' + - '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: /minglar/add-Pqq-suggestion + path: /minglaradmin/hosthub/hosts/add-Pqq-suggestion method: post - - \ No newline at end of file diff --git a/src/common/database/prisma.service.ts b/src/common/database/prisma.service.ts index 8e6186f..cd1204c 100644 --- a/src/common/database/prisma.service.ts +++ b/src/common/database/prisma.service.ts @@ -5,11 +5,6 @@ import { PrismaClient } from '@prisma/client'; export class PrismaService extends PrismaClient implements OnModuleInit, OnModuleDestroy { constructor() { super({ - datasources: { - db: { - url: process.env.DATABASE_URL, - }, - }, log: process.env.NODE_ENV === 'dev' ? ['query', 'info', 'warn', 'error'] : ['error'], }); } diff --git a/src/modules/minglaradmin/handlers/acceptHostApplication.ts b/src/modules/minglaradmin/handlers/hosthub/hosts/acceptHostApplication.ts similarity index 77% rename from src/modules/minglaradmin/handlers/acceptHostApplication.ts rename to src/modules/minglaradmin/handlers/hosthub/hosts/acceptHostApplication.ts index a71cc7d..3c1c99a 100644 --- a/src/modules/minglaradmin/handlers/acceptHostApplication.ts +++ b/src/modules/minglaradmin/handlers/hosthub/hosts/acceptHostApplication.ts @@ -1,10 +1,10 @@ import { APIGatewayProxyEvent, APIGatewayProxyResult, Context } from 'aws-lambda'; -import { PrismaService } from '../../../common/database/prisma.service'; -import { verifyMinglarAdminToken } from '../../../common/middlewares/jwt/authForMinglarAdmin'; -import { safeHandler } from '../../../common/utils/handlers/safeHandler'; -import ApiError from '../../../common/utils/helper/ApiError'; -import { MinglarService } from '../services/minglar.service'; -import { sendEmailToHostForApprovedApplication } from '../services/approvalMailtoHost.service' +import { PrismaService } from '../../../../../common/database/prisma.service'; +import { verifyMinglarAdminToken } from '../../../../../common/middlewares/jwt/authForMinglarAdmin'; +import { safeHandler } from '../../../../../common/utils/handlers/safeHandler'; +import ApiError from '../../../../../common/utils/helper/ApiError'; +import { MinglarService } from '../../../services/minglar.service'; +import { sendEmailToHostForApprovedApplication } from '../../../services/approvalMailtoHost.service' const prismaService = new PrismaService(); const minglarService = new MinglarService(prismaService); diff --git a/src/modules/minglaradmin/handlers/addPQQSuggestion.ts b/src/modules/minglaradmin/handlers/hosthub/hosts/addPQQSuggestion.ts similarity index 82% rename from src/modules/minglaradmin/handlers/addPQQSuggestion.ts rename to src/modules/minglaradmin/handlers/hosthub/hosts/addPQQSuggestion.ts index 6561205..34477a7 100644 --- a/src/modules/minglaradmin/handlers/addPQQSuggestion.ts +++ b/src/modules/minglaradmin/handlers/hosthub/hosts/addPQQSuggestion.ts @@ -1,10 +1,10 @@ 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 { HOST_SUGGESTION_TITLES } from '../../../common/utils/constants/minglar.constant'; +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 { HOST_SUGGESTION_TITLES } from '../../../../../common/utils/constants/minglar.constant'; const prismaService = new PrismaService(); const minglarService = new MinglarService(prismaService); diff --git a/src/modules/minglaradmin/handlers/addSuggestion.ts b/src/modules/minglaradmin/handlers/hosthub/hosts/addSuggestion.ts similarity index 82% rename from src/modules/minglaradmin/handlers/addSuggestion.ts rename to src/modules/minglaradmin/handlers/hosthub/hosts/addSuggestion.ts index 3583570..0e03366 100644 --- a/src/modules/minglaradmin/handlers/addSuggestion.ts +++ b/src/modules/minglaradmin/handlers/hosthub/hosts/addSuggestion.ts @@ -1,10 +1,10 @@ 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 { HOST_SUGGESTION_TITLES } from '../../../common/utils/constants/minglar.constant'; +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 { HOST_SUGGESTION_TITLES } from '../../../../../common/utils/constants/minglar.constant'; const prismaService = new PrismaService(); const minglarService = new MinglarService(prismaService); diff --git a/src/modules/minglaradmin/handlers/getAllHostApplication.ts b/src/modules/minglaradmin/handlers/hosthub/hosts/getAllHostApplication.ts similarity index 78% rename from src/modules/minglaradmin/handlers/getAllHostApplication.ts rename to src/modules/minglaradmin/handlers/hosthub/hosts/getAllHostApplication.ts index b56154a..2481032 100644 --- a/src/modules/minglaradmin/handlers/getAllHostApplication.ts +++ b/src/modules/minglaradmin/handlers/hosthub/hosts/getAllHostApplication.ts @@ -1,9 +1,9 @@ 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 { 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'; const prismaService = new PrismaService(); const minglarService = new MinglarService(prismaService); @@ -41,7 +41,7 @@ export const handler = safeHandler(async ( const userStatus = event.queryStringParameters?.userStatus || ''; // Get all host applications from service based on user role - const hostApplications = await minglarService.getAllHostApplications(user.id, user.roleXid, search, userStatus); + const hostApplications = await minglarService.getAllHostApplications(user.id, Number(user.roleXid), search, userStatus); return { statusCode: 200, diff --git a/src/modules/minglaradmin/handlers/rejectHostApplicationAM.ts b/src/modules/minglaradmin/handlers/hosthub/hosts/rejectHostApplicationAM.ts similarity index 81% rename from src/modules/minglaradmin/handlers/rejectHostApplicationAM.ts rename to src/modules/minglaradmin/handlers/hosthub/hosts/rejectHostApplicationAM.ts index 9f02400..c95d904 100644 --- a/src/modules/minglaradmin/handlers/rejectHostApplicationAM.ts +++ b/src/modules/minglaradmin/handlers/hosthub/hosts/rejectHostApplicationAM.ts @@ -1,10 +1,10 @@ import { verifyMinglarAdminToken } from '@/common/middlewares/jwt/authForMinglarAdmin'; 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'; -import { MinglarService } from '../services/minglar.service'; -import { sendAMRejectionMailtoHost } from '../services/rejectionMailtoHost.service'; +import { PrismaService } from '../../../../../common/database/prisma.service'; +import { safeHandler } from '../../../../../common/utils/handlers/safeHandler'; +import ApiError from '../../../../../common/utils/helper/ApiError'; +import { MinglarService } from '../../../services/minglar.service'; +import { sendAMRejectionMailtoHost } from '../../../services/rejectionMailtoHost.service'; const prismaService = new PrismaService(); const minglarService = new MinglarService(prismaService); diff --git a/src/modules/minglaradmin/handlers/acceptHostAppMinglar.ts b/src/modules/minglaradmin/handlers/hosthub/onboarding/acceptHostAppMinglar.ts similarity index 73% rename from src/modules/minglaradmin/handlers/acceptHostAppMinglar.ts rename to src/modules/minglaradmin/handlers/hosthub/onboarding/acceptHostAppMinglar.ts index 00b6fd4..ff149f2 100644 --- a/src/modules/minglaradmin/handlers/acceptHostAppMinglar.ts +++ b/src/modules/minglaradmin/handlers/hosthub/onboarding/acceptHostAppMinglar.ts @@ -1,10 +1,10 @@ -import { verifyOnlyMinglarAdminToken } from '@/common/middlewares/jwt/authForOnlyMinglarAdmin'; +import { verifyOnlyMinglarAdminToken } from '../../../../../common/middlewares/jwt/authForOnlyMinglarAdmin'; 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'; -import { sendEmailToHostForMinglarApproval } from '../services/approvalMailtoHost.service'; -import { MinglarService } from '../services/minglar.service'; +import { PrismaService } from '../../../../../common/database/prisma.service'; +import { safeHandler } from '../../../../../common/utils/handlers/safeHandler'; +import ApiError from '../../../../../common/utils/helper/ApiError'; +import { sendEmailToHostForMinglarApproval } from '../../../services/approvalMailtoHost.service'; +import { MinglarService } from '../../../services/minglar.service'; const prismaService = new PrismaService(); const minglarService = new MinglarService(prismaService); @@ -48,6 +48,9 @@ export const handler = safeHandler(async ( // Add suggestion using service await minglarService.acceptHostApplicationMinglarAdmin(hostXid, userInfo.id); const hostDetails = await minglarService.getUserDetails(userInfo.id) + if (!hostDetails?.emailAddress) { + throw new ApiError(404, 'Host details or email address not found'); + } await sendEmailToHostForMinglarApproval(hostDetails.emailAddress) return { diff --git a/src/modules/minglaradmin/handlers/assignAM.ts b/src/modules/minglaradmin/handlers/hosthub/onboarding/assignAM.ts similarity index 79% rename from src/modules/minglaradmin/handlers/assignAM.ts rename to src/modules/minglaradmin/handlers/hosthub/onboarding/assignAM.ts index 9c0be67..da81786 100644 --- a/src/modules/minglaradmin/handlers/assignAM.ts +++ b/src/modules/minglaradmin/handlers/hosthub/onboarding/assignAM.ts @@ -3,13 +3,12 @@ import { 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 { verifyOnlyMinglarAdminToken } from '@/common/middlewares/jwt/authForOnlyMinglarAdmin'; -import { sendAMEmailForHostAssign } from '../services/AMEmail.service'; +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 { verifyOnlyMinglarAdminToken } from '../../../../../common/middlewares/jwt/authForOnlyMinglarAdmin'; +import { sendAMEmailForHostAssign } from '../../../services/AMEmail.service'; const prismaService = new PrismaService(); const minglarService = new MinglarService(prismaService); diff --git a/src/modules/minglaradmin/handlers/editAgreementDetails.ts b/src/modules/minglaradmin/handlers/hosthub/onboarding/editAgreementDetails.ts similarity index 88% rename from src/modules/minglaradmin/handlers/editAgreementDetails.ts rename to src/modules/minglaradmin/handlers/hosthub/onboarding/editAgreementDetails.ts index 4f43ae3..83a6db8 100644 --- a/src/modules/minglaradmin/handlers/editAgreementDetails.ts +++ b/src/modules/minglaradmin/handlers/hosthub/onboarding/editAgreementDetails.ts @@ -1,9 +1,9 @@ import { verifyOnlyMinglarAdminToken } from '@/common/middlewares/jwt/authForOnlyMinglarAdmin'; 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'; -import { MinglarService } from '../services/minglar.service'; +import { PrismaService } from '../../../../../common/database/prisma.service'; +import { safeHandler } from '../../../../../common/utils/handlers/safeHandler'; +import ApiError from '../../../../../common/utils/helper/ApiError'; +import { MinglarService } from '../../../services/minglar.service'; const prismaService = new PrismaService(); const minglarService = new MinglarService(prismaService); diff --git a/src/modules/minglaradmin/handlers/getAllOnboardingHosts.ts b/src/modules/minglaradmin/handlers/hosthub/onboarding/getAllOnboardingHosts.ts similarity index 83% rename from src/modules/minglaradmin/handlers/getAllOnboardingHosts.ts rename to src/modules/minglaradmin/handlers/hosthub/onboarding/getAllOnboardingHosts.ts index bb17d6e..e81d114 100644 --- a/src/modules/minglaradmin/handlers/getAllOnboardingHosts.ts +++ b/src/modules/minglaradmin/handlers/hosthub/onboarding/getAllOnboardingHosts.ts @@ -1,9 +1,9 @@ import { verifyOnlyMinglarAdminToken } from '@/common/middlewares/jwt/authForOnlyMinglarAdmin'; 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'; -import { MinglarService } from '../services/minglar.service'; +import { PrismaService } from '../../../../../common/database/prisma.service'; +import { safeHandler } from '../../../../../common/utils/handlers/safeHandler'; +import ApiError from '../../../../../common/utils/helper/ApiError'; +import { MinglarService } from '../../../services/minglar.service'; const prismaService = new PrismaService(); const minglarService = new MinglarService(prismaService); diff --git a/src/modules/minglaradmin/handlers/getOnboardingNewApplications.ts b/src/modules/minglaradmin/handlers/hosthub/onboarding/getOnboardingNewApplications.ts similarity index 79% rename from src/modules/minglaradmin/handlers/getOnboardingNewApplications.ts rename to src/modules/minglaradmin/handlers/hosthub/onboarding/getOnboardingNewApplications.ts index 34ca161..f0b6429 100644 --- a/src/modules/minglaradmin/handlers/getOnboardingNewApplications.ts +++ b/src/modules/minglaradmin/handlers/hosthub/onboarding/getOnboardingNewApplications.ts @@ -1,9 +1,9 @@ -import { verifyOnlyMinglarAdminToken } from '@/common/middlewares/jwt/authForOnlyMinglarAdmin'; +import { verifyOnlyMinglarAdminToken } from '../../../../../common/middlewares/jwt/authForOnlyMinglarAdmin'; 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'; -import { MinglarService } from '../services/minglar.service'; +import { PrismaService } from '../../../../../common/database/prisma.service'; +import { safeHandler } from '../../../../../common/utils/handlers/safeHandler'; +import ApiError from '../../../../../common/utils/helper/ApiError'; +import { MinglarService } from '../../../services/minglar.service'; const prismaService = new PrismaService(); const minglarService = new MinglarService(prismaService); diff --git a/src/modules/minglaradmin/handlers/rejectHostApplication.ts b/src/modules/minglaradmin/handlers/hosthub/onboarding/rejectHostApplication.ts similarity index 73% rename from src/modules/minglaradmin/handlers/rejectHostApplication.ts rename to src/modules/minglaradmin/handlers/hosthub/onboarding/rejectHostApplication.ts index 780a0b6..8874833 100644 --- a/src/modules/minglaradmin/handlers/rejectHostApplication.ts +++ b/src/modules/minglaradmin/handlers/hosthub/onboarding/rejectHostApplication.ts @@ -1,10 +1,10 @@ -import { verifyOnlyMinglarAdminToken } from '@/common/middlewares/jwt/authForOnlyMinglarAdmin'; +import { verifyOnlyMinglarAdminToken } from '../../../../../common/middlewares/jwt/authForOnlyMinglarAdmin'; 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'; -import { MinglarService } from '../services/minglar.service'; -import { sendEmailToHostForRejectedApplication } from '../services/rejectionMailtoHost.service'; +import { PrismaService } from '../../../../../common/database/prisma.service'; +import { safeHandler } from '../../../../../common/utils/handlers/safeHandler'; +import ApiError from '../../../../../common/utils/helper/ApiError'; +import { MinglarService } from '../../../services/minglar.service'; +import { sendEmailToHostForRejectedApplication } from '../../../services/rejectionMailtoHost.service'; const prismaService = new PrismaService(); const minglarService = new MinglarService(prismaService); @@ -48,6 +48,9 @@ export const handler = safeHandler(async ( // Add suggestion using service await minglarService.rejectHostApplication(hostXid, userInfo.id); const hostDetails = await minglarService.getUserDetails(userInfo.id) + if (!hostDetails?.emailAddress) { + throw new ApiError(404, 'Host details or email address not found'); + } await sendEmailToHostForRejectedApplication(hostDetails.emailAddress) return { diff --git a/src/modules/minglaradmin/handlers/prepopulateTeammate.ts b/src/modules/minglaradmin/handlers/prepopulateTeammate.ts deleted file mode 100644 index 142fdd5..0000000 --- a/src/modules/minglaradmin/handlers/prepopulateTeammate.ts +++ /dev/null @@ -1,85 +0,0 @@ -import { - APIGatewayProxyEvent, - APIGatewayProxyResult, - Context, -} from 'aws-lambda'; -import { safeHandler } from '../../../common/utils/handlers/safeHandler'; -import { PrismaService } from '../../../common/database/prisma.service'; -import ApiError from '../../../common/utils/helper/ApiError'; -import { ROLE } from '../../../common/utils/constants/common.constant'; -import { verifyMinglarAdminToken } from '../../../common/middlewares/jwt/authForMinglarAdmin'; - -const prismaService = new PrismaService(); - -/** - * Get prepopulated roles for Coadmin and Account_manager - * Returns an array of role objects with their IDs - * Only accessible by MINGLAR_ADMIN (role_xid = 1) - */ -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.', - ); - } - - // Verify token and get user info - const userInfo = await verifyMinglarAdminToken(token); - console.log('User Info:', userInfo); - // Check if user has Minglar Admin role (role_xid = 1) - const user = await prismaService.user.findUnique({ - where: { id: userInfo.id }, - select: { roleXid: true }, - }); - - if (!user || user.roleXid !== ROLE.MINGLAR_ADMIN) { - throw new ApiError( - 403, - 'Access denied. Only Minglar Admin can access this route.', - ); - } - - // Fetch Coadmin and Account_Manager roles - const roles = await prismaService.roles.findMany({ - where: { - id: { - in: [ROLE.CO_ADMIN, ROLE.ACCOUNT_MANAGER], - }, - isActive: true, - deletedAt: null, - }, - select: { - id: true, - roleName: true, - }, - orderBy: { - id: 'asc', - }, - }); - - if (!roles || roles.length === 0) { - throw new ApiError(404, 'No roles found for Coadmin or Account_manager'); - } - - return { - statusCode: 200, - headers: { - 'Content-Type': 'application/json', - 'Access-Control-Allow-Origin': '*', - }, - body: JSON.stringify({ - success: true, - message: 'Roles retrieved successfully', - data: roles, - count: roles.length, - }), - }; - }, -); diff --git a/src/modules/minglaradmin/handlers/getAllCoadminAndAM.ts b/src/modules/minglaradmin/handlers/settings/teammates/getAllCoadminAndAM.ts similarity index 78% rename from src/modules/minglaradmin/handlers/getAllCoadminAndAM.ts rename to src/modules/minglaradmin/handlers/settings/teammates/getAllCoadminAndAM.ts index a38cf50..587dde8 100644 --- a/src/modules/minglaradmin/handlers/getAllCoadminAndAM.ts +++ b/src/modules/minglaradmin/handlers/settings/teammates/getAllCoadminAndAM.ts @@ -1,9 +1,9 @@ import { verifyOnlyMinglarAdminToken } from '@/common/middlewares/jwt/authForOnlyMinglarAdmin'; 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'; -import { MinglarService } from '../services/minglar.service'; +import { PrismaService } from '../../../../../common/database/prisma.service'; +import { safeHandler } from '../../../../../common/utils/handlers/safeHandler'; +import ApiError from '../../../../../common/utils/helper/ApiError'; +import { MinglarService } from '../../../services/minglar.service'; const prismaService = new PrismaService(); const minglarService = new MinglarService(prismaService); diff --git a/src/modules/minglaradmin/handlers/getAllInvitationDetails.ts b/src/modules/minglaradmin/handlers/settings/teammates/getAllInvitationDetails.ts similarity index 78% rename from src/modules/minglaradmin/handlers/getAllInvitationDetails.ts rename to src/modules/minglaradmin/handlers/settings/teammates/getAllInvitationDetails.ts index f00bf88..a4a4500 100644 --- a/src/modules/minglaradmin/handlers/getAllInvitationDetails.ts +++ b/src/modules/minglaradmin/handlers/settings/teammates/getAllInvitationDetails.ts @@ -1,9 +1,9 @@ import { verifyOnlyMinglarAdminToken } from '@/common/middlewares/jwt/authForOnlyMinglarAdmin'; 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'; -import { MinglarService } from '../services/minglar.service'; +import { PrismaService } from '../../../../../common/database/prisma.service'; +import { safeHandler } from '../../../../../common/utils/handlers/safeHandler'; +import ApiError from '../../../../../common/utils/helper/ApiError'; +import { MinglarService } from '../../../services/minglar.service'; const prismaService = new PrismaService(); const minglarService = new MinglarService(prismaService); diff --git a/src/modules/minglaradmin/handlers/getAllInvitedCoadminAndAM.ts b/src/modules/minglaradmin/handlers/settings/teammates/getAllInvitedCoadminAndAM.ts similarity index 78% rename from src/modules/minglaradmin/handlers/getAllInvitedCoadminAndAM.ts rename to src/modules/minglaradmin/handlers/settings/teammates/getAllInvitedCoadminAndAM.ts index 0f1d0c8..8f0dd3c 100644 --- a/src/modules/minglaradmin/handlers/getAllInvitedCoadminAndAM.ts +++ b/src/modules/minglaradmin/handlers/settings/teammates/getAllInvitedCoadminAndAM.ts @@ -1,9 +1,9 @@ import { verifyOnlyMinglarAdminToken } from '@/common/middlewares/jwt/authForOnlyMinglarAdmin'; 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'; -import { MinglarService } from '../services/minglar.service'; +import { PrismaService } from '../../../../../common/database/prisma.service'; +import { safeHandler } from '../../../../../common/utils/handlers/safeHandler'; +import ApiError from '../../../../../common/utils/helper/ApiError'; +import { MinglarService } from '../../../services/minglar.service'; const prismaService = new PrismaService(); const minglarService = new MinglarService(prismaService); diff --git a/src/modules/minglaradmin/handlers/inviteTeammate.ts b/src/modules/minglaradmin/handlers/settings/teammates/inviteTeammate.ts similarity index 100% rename from src/modules/minglaradmin/handlers/inviteTeammate.ts rename to src/modules/minglaradmin/handlers/settings/teammates/inviteTeammate.ts