From 507797d27af042e87c79a440ca8bf727e8b6ed26 Mon Sep 17 00:00:00 2001 From: paritosh18 Date: Fri, 5 Dec 2025 13:17:48 +0530 Subject: [PATCH] refactor: update serverless configuration and function definitions for Minglar service - Renamed service from `minglarDev` to `minglar`. - Updated Prisma layer reference to use qualified ARN for better deployment handling. - Added new HTTP API endpoints for host management and onboarding processes. - Removed unnecessary patterns from the package configurations in `minglaradmin.yml` to streamline the deployment process. --- serverless.yml | 12 +- serverless/functions/host.yml | 384 +++++++++++++++++++++++--- serverless/functions/minglaradmin.yml | 16 -- 3 files changed, 351 insertions(+), 61 deletions(-) diff --git a/serverless.yml b/serverless.yml index 1ffa9f6..2a26adc 100644 --- a/serverless.yml +++ b/serverless.yml @@ -1,4 +1,4 @@ -service: minglarDev +service: minglar provider: name: aws @@ -7,8 +7,9 @@ provider: versionFunctions: false memorySize: 512 # Apply Prisma layer to all functions + # Use the published layer version ARN (works for full deploy and `deploy function`) layers: - - !Ref PrismaLambdaLayer + - ${cf:${self:service}-${sls:stage}.PrismaLambdaLayerQualifiedArn} apiGateway: binaryMediaTypes: - '*/*' @@ -56,13 +57,16 @@ provider: - 'arn:aws:s3:::${env:S3_BUCKET_NAME}/*' custom: + serverless-offline: + reloadHandler: true + +build: esbuild: bundle: true minify: true sourcemap: false target: node20 platform: node - concurrency: 5 external: # These are provided by the Prisma layer - '@prisma/client' @@ -71,8 +75,6 @@ custom: - 'pg' exclude: - 'aws-sdk' - serverless-offline: - reloadHandler: true # Define layers layers: diff --git a/serverless/functions/host.yml b/serverless/functions/host.yml index fc3d776..cb647e3 100644 --- a/serverless/functions/host.yml +++ b/serverless/functions/host.yml @@ -1,376 +1,680 @@ # Host Module Functions + # All authentication and host management endpoints + + getHosts: + handler: src/modules/host/handlers/host.handler + memorySize: 384 + package: + patterns: + - 'src/modules/host/handlers/host.*' + - 'src/modules/host/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: /host + method: get + + verifyOTP: + handler: src/modules/host/handlers/Host_Admin/onboarding/verifyOTP.handler + memorySize: 384 + package: + patterns: + - 'src/modules/host/handlers/verifyOtp.*' + - 'src/modules/host/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: /host/Host_Admin/onboarding/verify-otp + method: post + + login: + handler: src/modules/host/handlers/Host_Admin/onboarding/login.handler + memorySize: 384 + package: + patterns: + - 'src/modules/host/handlers/loginForHost.*' + - 'src/modules/host/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: /host/Host_Admin/onboarding/login + method: post + + signUp: + handler: src/modules/host/handlers/Host_Admin/onboarding/signUp.handler + memorySize: 384 + package: + patterns: + - 'src/modules/host/handlers/registration.*' + - 'src/modules/host/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: /host/Host_Admin/onboarding/registration + method: post + + createPassword: + handler: src/modules/host/handlers/Host_Admin/onboarding/createPassword.handler + memorySize: 384 + package: + patterns: + - 'src/modules/host/handlers/createPassword.*' + - 'src/modules/host/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: /host/Host_Admin/onboarding/create-password + method: post + + updateBankDetails: + handler: src/modules/host/handlers/Host_Admin/onboarding/updateBankDetails.handler + memorySize: 384 + package: + patterns: + - 'src/modules/host/handlers/addPaymentDetails.*' + - 'src/modules/host/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: /host/Host_Admin/onboarding/add-payment-details + method: post + + saveActivity_ForPQQ: + handler: src/modules/host/handlers/Activity_Hub/OnBoarding/saveActivity_ForPQQ.handler + memorySize: 384 + package: + patterns: + - 'src/modules/host/handlers/addActivity.*' + - 'src/modules/host/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: /host/Activity_Hub/OnBoarding/add-activity + method: post + + getHostById: + handler: src/modules/host/handlers/getbyidhandler.handler + memorySize: 384 + package: + patterns: + - 'src/modules/host/handlers/getbyidhandler.*' + - 'src/modules/host/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: /host/getById + method: get + + getPQQ_ByQuestionId: + handler: src/modules/host/handlers/Activity_Hub/OnBoarding/getPQQ_ByQuestionId.handler + memorySize: 384 + package: + patterns: + - 'src/modules/host/handlers/getByIdPQQ.*' + - 'src/modules/host/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: /host/Activity_Hub/OnBoarding/get-pqq-question-details + method: get + + getPQQ_LastUpdatedQuestion: + handler: src/modules/host/handlers/Activity_Hub/OnBoarding/getPQQ_LastUpdatedQuestion.handler + memorySize: 384 + package: + patterns: + - 'src/modules/host/handlers/getLatestQuestionDetailsPQQ.*' + - 'src/modules/host/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: /host/Activity_Hub/OnBoarding/get-latest-pqq-question-details + method: get + + getAllActivityType: + handler: src/modules/host/handlers/Activity_Hub/OnBoarding/getAllActivityType.handler + memorySize: 384 + package: + patterns: + - 'src/modules/host/handlers/getActivityType.*' + - 'src/modules/host/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: /host/Activity_Hub/OnBoarding/get-activity-type + method: get + + showSuggestion: + handler: src/modules/host/handlers/Host_Admin/onboarding/showSuggestion.handler + memorySize: 384 + package: + patterns: + - 'src/modules/host/handlers/Host_Admin/onboarding/showSuggestion.handler.*' + - 'src/modules/host/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: /host/get-suggestion + method: get + + getAllHostActivity: + handler: src/modules/host/handlers/Activity_Hub/OnBoarding/getAllHostActivity.handler + memorySize: 384 + package: + patterns: + - 'src/modules/host/handlers/Activity_Hub/OnBoarding/getAllHostActivity.*' + - 'src/modules/host/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: /host/Activity_Hub/OnBoarding/get-all-host-activity + method: get + + acceptAggrement: + handler: src/modules/host/handlers/Host_Admin/onboarding/acceptAggrement.handler + memorySize: 384 + package: + patterns: + - 'src/modules/host/handlers/acceptAgreement.*' + - 'src/modules/host/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: /host/Host_Admin/onboarding/accept-agreement + method: patch + + getStepperInfo: + handler: src/modules/host/handlers/getStepper.handler + memorySize: 384 + package: + patterns: + - 'src/modules/host/handlers/getStepper.*' + - 'src/common/utils/handlers/safeHandler.*' + - 'src/common/database/**' + - 'src/modules/host/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: /stepper + method: get + + # Functions with S3/AWS SDK dependencies + submitCompanyDetails: + handler: src/modules/host/handlers/Host_Admin/onboarding/submitCompanyDetails.handler + memorySize: 1024 + timeout: 30 + package: + patterns: + - 'src/modules/host/handlers/addCompanyDetails.*' + - 'src/modules/host/services/**' + - 'src/common/**' - - 'node_modules/@prisma/client/**' - - 'node_modules/.prisma/client/libquery_engine-rhel-openssl-3.0.x.so.node' - # Only include specific AWS SDK modules needed for S3 - - 'node_modules/@aws-sdk/client-s3/**' - - 'node_modules/@aws-sdk/s3-request-presigner/**' - - 'node_modules/@aws-sdk/types/**' - - 'node_modules/@aws-sdk/middleware-logger/**' - - 'node_modules/@aws-sdk/util-utf8-node/**' - - 'node_modules/@aws-sdk/util-utf8-browser/**' - - 'node_modules/@smithy/**' - - 'node_modules/tslib/**' - # Remove these large/unnecessary packages: - - 'node_modules/fast-xml-parser/**' # Remove if not used - - 'node_modules/lambda-multipart-parser/**' # You're using busboy directly - - 'node_modules/busboy/**' - # Remove these AWS utility packages (included in main SDK): - - 'node_modules/@aws-crypto/**' - # - 'node_modules/uuid/**' # AWS SDK includes its own - # - 'node_modules/@aws/util-uri-escape/**' - # - 'node_modules/@aws/util-middleware/**' - - 'node_modules/@aws/smithy-client/**' - # - 'node_modules/@aws/lambda-invoke-store/**' + + - ${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: /host/Host_Admin/onboarding/add-company-details + method: patch + + submitPQQ_Answer: + handler: src/modules/host/handlers/Activity_Hub/OnBoarding/submitPQQ_Answer.handler + memorySize: 1024 + package: + patterns: + - 'src/modules/host/handlers/submitPqqAns.*' + - 'src/modules/host/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} - - 'node_modules/@aws-sdk/client-s3/**' - - 'node_modules/@aws-sdk/s3-request-presigner/**' - - 'node_modules/@aws-sdk/types/**' - - 'node_modules/@aws-sdk/middleware-logger/**' - - 'node_modules/@aws-sdk/util-utf8-node/**' - - 'node_modules/@aws-sdk/util-utf8-browser/**' - - 'node_modules/@smithy/**' - - 'node_modules/tslib/**' - # Remove these large/unnecessary packages: - - 'node_modules/fast-xml-parser/**' # Remove if not used - - 'node_modules/lambda-multipart-parser/**' # You're using busboy directly - - 'node_modules/busboy/**' - # Remove these AWS utility packages (included in main SDK): - - 'node_modules/@aws-crypto/**' - # - 'node_modules/uuid/**' # AWS SDK includes its own - # - 'node_modules/@aws/util-uri-escape/**' - # - 'node_modules/@aws/util-middleware/**' - - 'node_modules/@aws/smithy-client/**' + events: + - httpApi: + path: /host/Activity_Hub/OnBoarding/submit-pqq-answer + method: patch + + updatePQQ_LastAnswer: + handler: src/modules/host/handlers/Activity_Hub/OnBoarding/getPQQScore.handler + memorySize: 384 + package: + patterns: + - 'src/modules/host/handlers/submitPqqAns.*' + - 'src/modules/host/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: /host/Activity_Hub/OnBoarding/submit-final-pqq-answer + method: post + + getAllPQQwithSubmittedAns: + handler: src/modules/host/handlers/Activity_Hub/OnBoarding/getAllPQQwithSubmittedAns.handler + memorySize: 512 + package: + patterns: + - 'src/modules/prepopulate/**' + - ${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: /host/Activity_Hub/OnBoarding/get-all-pqq-ques-submited-ans + method: get + + updateSuggestionAsReviewed: + handler: src/modules/host/handlers/Activity_Hub/OnBoarding/updateSuggestionAsReviewed.handler + memorySize: 512 + package: + patterns: + - 'src/modules/host/handlers/Activity_Hub/OnBoarding/**' + - ${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: /host/Activity_Hub/OnBoarding/update-suggestion-reviewed + method: patch + + resendOTPmail: + handler: src/modules/host/handlers/resendOtp.handler + memorySize: 512 + package: + patterns: + - 'src/modules/host/handlers/resendOtp/**' + - ${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: /resend-otp + method: post + diff --git a/serverless/functions/minglaradmin.yml b/serverless/functions/minglaradmin.yml index a8c19c8..02b759f 100644 --- a/serverless/functions/minglaradmin.yml +++ b/serverless/functions/minglaradmin.yml @@ -60,22 +60,6 @@ updateMinglarProfile: - ${file(./serverless/patterns/base.yml):pattern2} - ${file(./serverless/patterns/base.yml):pattern3} - ${file(./serverless/patterns/base.yml):pattern4} - - ${file(./serverless/patterns/aws-s3.yml):pattern1} - - ${file(./serverless/patterns/aws-s3.yml):pattern2} - - ${file(./serverless/patterns/aws-s3.yml):pattern3} - - ${file(./serverless/patterns/aws-s3.yml):pattern4} - - ${file(./serverless/patterns/aws-s3.yml):pattern5} - - ${file(./serverless/patterns/aws-s3.yml):pattern6} - - ${file(./serverless/patterns/aws-s3.yml):pattern7} - - ${file(./serverless/patterns/aws-s3.yml):pattern8} - - ${file(./serverless/patterns/aws-s3.yml):pattern9} - - ${file(./serverless/patterns/aws-s3.yml):pattern10} - - ${file(./serverless/patterns/aws-s3.yml):pattern11} - - ${file(./serverless/patterns/aws-s3.yml):pattern12} - - ${file(./serverless/patterns/aws-s3.yml):pattern13} - - ${file(./serverless/patterns/aws-s3.yml):pattern14} - - ${file(./serverless/patterns/aws-s3.yml):pattern15} - - ${file(./serverless/patterns/aws-s3.yml):pattern16} events: - httpApi: path: /minglaradmin/update-profile