Compare commits
4 Commits
bb5da7647b
...
validation
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
6011318986 | ||
|
|
28175bbd7d | ||
|
|
572420823c | ||
|
|
9706e5b66b |
1
.gitignore
vendored
1
.gitignore
vendored
@@ -44,6 +44,7 @@ lerna-debug.log*
|
||||
# temp
|
||||
.tmp
|
||||
.temp
|
||||
undefined/
|
||||
|
||||
# Runtime data
|
||||
pids
|
||||
|
||||
140
src/common/utils/validation/host/activity.validation.ts
Normal file
140
src/common/utils/validation/host/activity.validation.ts
Normal file
@@ -0,0 +1,140 @@
|
||||
/**
|
||||
* Host Activity Validation Schemas
|
||||
* Production-ready Zod validations for host activity management
|
||||
*/
|
||||
import { z } from 'zod';
|
||||
import { idSchema, optionalIdSchema, searchQuerySchema, paginationSchema } from '../validation.utils';
|
||||
|
||||
// ============================================
|
||||
// CREATE ACTIVITY (FOR PQQ)
|
||||
// ============================================
|
||||
|
||||
/**
|
||||
* Create activity schema
|
||||
*/
|
||||
export const createActivitySchema = z.object({
|
||||
activityTypeXid: idSchema.describe('Activity type ID'),
|
||||
frequenciesXid: optionalIdSchema.describe('Frequency ID'),
|
||||
});
|
||||
|
||||
export type CreateActivityInput = z.infer<typeof createActivitySchema>;
|
||||
|
||||
// ============================================
|
||||
// GET ACTIVITY TYPE
|
||||
// ============================================
|
||||
|
||||
/**
|
||||
* Get all activity types query params
|
||||
*/
|
||||
export const getActivityTypeQuerySchema = z.object({
|
||||
interestXid: z.coerce
|
||||
.number()
|
||||
.int('Interest ID must be an integer')
|
||||
.positive('Interest ID must be positive')
|
||||
.optional(),
|
||||
});
|
||||
|
||||
export type GetActivityTypeQuery = z.infer<typeof getActivityTypeQuerySchema>;
|
||||
|
||||
// ============================================
|
||||
// GET PQQ BY QUESTION ID
|
||||
// ============================================
|
||||
|
||||
/**
|
||||
* Get PQQ by question ID query params
|
||||
*/
|
||||
export const getPqqByQuestionIdQuerySchema = z.object({
|
||||
question_xid: z.coerce
|
||||
.number()
|
||||
.int('Question ID must be an integer')
|
||||
.positive('Question ID must be positive'),
|
||||
activity_xid: z.coerce
|
||||
.number()
|
||||
.int('Activity ID must be an integer')
|
||||
.positive('Activity ID must be positive'),
|
||||
});
|
||||
|
||||
export type GetPqqByQuestionIdQuery = z.infer<typeof getPqqByQuestionIdQuerySchema>;
|
||||
|
||||
// ============================================
|
||||
// SUBMIT PQQ ANSWER
|
||||
// ============================================
|
||||
|
||||
/**
|
||||
* Submit PQQ answer schema
|
||||
*/
|
||||
export const submitPqqAnswerSchema = z.object({
|
||||
activityXid: idSchema.describe('Activity ID'),
|
||||
questionXid: idSchema.describe('Question ID'),
|
||||
answerXid: idSchema.describe('Answer ID'),
|
||||
// For file uploads, these are handled separately
|
||||
documentPath: z.string().max(500).optional(),
|
||||
remarks: z.string().max(500, 'Remarks cannot exceed 500 characters').optional(),
|
||||
});
|
||||
|
||||
export type SubmitPqqAnswerInput = z.infer<typeof submitPqqAnswerSchema>;
|
||||
|
||||
// ============================================
|
||||
// UPDATE SUGGESTION AS REVIEWED
|
||||
// ============================================
|
||||
|
||||
/**
|
||||
* Update suggestion as reviewed schema
|
||||
*/
|
||||
export const updateSuggestionReviewedSchema = z.object({
|
||||
activityPqqHeaderXid: idSchema.describe('Activity PQQ Header ID'),
|
||||
activityPQQSuggestionId: idSchema.optional().describe('Activity PQQ Suggestion ID'),
|
||||
});
|
||||
|
||||
export type UpdateSuggestionReviewedInput = z.infer<typeof updateSuggestionReviewedSchema>;
|
||||
|
||||
// ============================================
|
||||
// GET ALL HOST ACTIVITY
|
||||
// ============================================
|
||||
|
||||
/**
|
||||
* Get all host activities query params
|
||||
*/
|
||||
export const getAllHostActivityQuerySchema = z.object({
|
||||
hostXid: z.coerce
|
||||
.number()
|
||||
.int('Host ID must be an integer')
|
||||
.positive('Host ID must be positive')
|
||||
.optional(),
|
||||
status: z
|
||||
.enum(['pending', 'approved', 'rejected', 'draft'])
|
||||
.optional(),
|
||||
...paginationSchema.shape,
|
||||
});
|
||||
|
||||
export type GetAllHostActivityQuery = z.infer<typeof getAllHostActivityQuerySchema>;
|
||||
|
||||
// ============================================
|
||||
// GET LATEST QUESTION (activity_xid query param)
|
||||
// ============================================
|
||||
|
||||
/**
|
||||
* Get latest PQQ question query params
|
||||
*/
|
||||
export const getLatestPqqQuestionQuerySchema = z.object({
|
||||
activity_xid: z.coerce
|
||||
.number()
|
||||
.int('Activity ID must be an integer')
|
||||
.positive('Activity ID must be positive'),
|
||||
});
|
||||
|
||||
export type GetLatestPqqQuestionQuery = z.infer<typeof getLatestPqqQuestionQuerySchema>;
|
||||
|
||||
// ============================================
|
||||
// SEARCH QUERY (optional)
|
||||
// ============================================
|
||||
|
||||
/**
|
||||
* Optional search query params
|
||||
*/
|
||||
export const optionalSearchQuerySchema = z.object({
|
||||
search: searchQuerySchema,
|
||||
q: searchQuerySchema,
|
||||
});
|
||||
|
||||
export type OptionalSearchQuery = z.infer<typeof optionalSearchQuerySchema>;
|
||||
@@ -1,40 +1,27 @@
|
||||
// validations/hostBankDetails.validation.ts
|
||||
import { z } from "zod";
|
||||
/**
|
||||
* Host Bank Details Validation Schema
|
||||
* Production-ready Zod validation for payment/bank details
|
||||
*/
|
||||
import { z } from 'zod';
|
||||
import { idSchema, ifscCodeSchema, accountNumberSchema } from '../validation.utils';
|
||||
|
||||
export const hostBankDetailsSchema = z.object({
|
||||
accountNumber: z
|
||||
.string()
|
||||
.nonempty("Account number is required"),
|
||||
accountNumber: accountNumberSchema,
|
||||
|
||||
accountHolderName: z
|
||||
.string()
|
||||
.nonempty("Account holder name is required")
|
||||
.min(2, { message: "Account holder name must be at least 2 characters" }),
|
||||
.min(2, 'Account holder name must be at least 2 characters')
|
||||
.max(100, 'Account holder name cannot exceed 100 characters'),
|
||||
|
||||
ifscCode: z
|
||||
.string()
|
||||
.nonempty("IFSC code is required")
|
||||
.regex(/^[A-Z]{4}0[A-Z0-9]{6}$/, { message: "Invalid IFSC code format" }),
|
||||
ifscCode: ifscCodeSchema,
|
||||
|
||||
bankXid: z
|
||||
.number()
|
||||
.int({ message: "Bank ID must be an integer" })
|
||||
.positive({ message: "Bank ID must be a positive number" }),
|
||||
bankXid: idSchema.describe('Bank ID'),
|
||||
|
||||
hostXid: z
|
||||
.number()
|
||||
.int({ message: "Host ID must be an integer" })
|
||||
.positive({ message: "Host ID must be a positive number" }),
|
||||
hostXid: idSchema.describe('Host ID'),
|
||||
|
||||
bankBranchXid: z
|
||||
.number()
|
||||
.int({ message: "Bank branch ID must be an integer" })
|
||||
.positive({ message: "Bank branch ID must be a positive number" }),
|
||||
bankBranchXid: idSchema.describe('Bank branch ID'),
|
||||
|
||||
currencyXid: z
|
||||
.number()
|
||||
.int({ message: "Currency ID must be an integer" })
|
||||
.positive({ message: "Currency ID must be a positive number" }),
|
||||
currencyXid: idSchema.describe('Currency ID'),
|
||||
});
|
||||
|
||||
export type HostBankDetailsSchema = z.infer<typeof hostBankDetailsSchema>;
|
||||
export type HostBankDetailsInput = z.infer<typeof hostBankDetailsSchema>;
|
||||
|
||||
139
src/common/utils/validation/host/auth.validation.ts
Normal file
139
src/common/utils/validation/host/auth.validation.ts
Normal file
@@ -0,0 +1,139 @@
|
||||
/**
|
||||
* Host Onboarding Validation Schemas
|
||||
* Production-ready Zod validations for host registration and authentication
|
||||
* Compatible with Zod v4
|
||||
*/
|
||||
import { z } from 'zod';
|
||||
import {
|
||||
emailSchema,
|
||||
simplePasswordSchema,
|
||||
otpSchema,
|
||||
nameSchema,
|
||||
optionalNameSchema,
|
||||
mobileNumberSchema,
|
||||
isdCodeSchema,
|
||||
} from '../validation.utils';
|
||||
|
||||
// ============================================
|
||||
// SIGNUP / REGISTRATION
|
||||
// ============================================
|
||||
|
||||
/**
|
||||
* Host registration/signup schema
|
||||
*/
|
||||
export const hostSignUpSchema = z.object({
|
||||
email: emailSchema,
|
||||
});
|
||||
|
||||
export type HostSignUpInput = z.infer<typeof hostSignUpSchema>;
|
||||
|
||||
// ============================================
|
||||
// OTP VERIFICATION
|
||||
// ============================================
|
||||
|
||||
/**
|
||||
* OTP verification schema
|
||||
*/
|
||||
export const verifyOtpSchema = z.object({
|
||||
otp: otpSchema,
|
||||
});
|
||||
|
||||
export type VerifyOtpInput = z.infer<typeof verifyOtpSchema>;
|
||||
|
||||
/**
|
||||
* OTP verification with email schema (for verifyOTP handler)
|
||||
*/
|
||||
export const verifyOtpWithEmailSchema = z.object({
|
||||
email: emailSchema,
|
||||
otp: otpSchema,
|
||||
});
|
||||
|
||||
export type VerifyOtpWithEmailInput = z.infer<typeof verifyOtpWithEmailSchema>;
|
||||
|
||||
// ============================================
|
||||
// LOGIN
|
||||
// ============================================
|
||||
|
||||
/**
|
||||
* Host login schema
|
||||
*/
|
||||
export const hostLoginSchema = z.object({
|
||||
emailAddress: emailSchema,
|
||||
userPassword: z
|
||||
.string()
|
||||
.min(1, 'Password is required'),
|
||||
});
|
||||
|
||||
export type HostLoginInput = z.infer<typeof hostLoginSchema>;
|
||||
|
||||
// ============================================
|
||||
// CREATE PASSWORD
|
||||
// ============================================
|
||||
|
||||
/**
|
||||
* Create password schema with confirmation matching
|
||||
*/
|
||||
export const createPasswordSchema = z
|
||||
.object({
|
||||
password: simplePasswordSchema,
|
||||
confirmPassword: z.string().min(1, 'Confirm password is required'),
|
||||
})
|
||||
.refine((data) => data.password === data.confirmPassword, {
|
||||
message: 'Password and confirm password do not match',
|
||||
path: ['confirmPassword'],
|
||||
});
|
||||
|
||||
export type CreatePasswordInput = z.infer<typeof createPasswordSchema>;
|
||||
|
||||
// ============================================
|
||||
// RESEND OTP
|
||||
// ============================================
|
||||
|
||||
/**
|
||||
* Resend OTP schema
|
||||
*/
|
||||
export const resendOtpSchema = z.object({
|
||||
email: emailSchema,
|
||||
purpose: z
|
||||
.enum(['Register', 'Login', 'ForgotPassword'])
|
||||
.optional()
|
||||
.default('Register'),
|
||||
});
|
||||
|
||||
export type ResendOtpInput = z.infer<typeof resendOtpSchema>;
|
||||
|
||||
// ============================================
|
||||
// UPDATE PROFILE
|
||||
// ============================================
|
||||
|
||||
/**
|
||||
* Host profile update schema
|
||||
*/
|
||||
export const updateHostProfileSchema = z.object({
|
||||
firstName: optionalNameSchema,
|
||||
lastName: optionalNameSchema,
|
||||
mobileNumber: mobileNumberSchema,
|
||||
isdCode: isdCodeSchema,
|
||||
dateOfBirth: z
|
||||
.string()
|
||||
.refine((val) => !val || !isNaN(Date.parse(val)), 'Invalid date format')
|
||||
.optional(),
|
||||
profileImage: z.string().max(500, 'Profile image path cannot exceed 500 characters').optional(),
|
||||
});
|
||||
|
||||
export type UpdateHostProfileInput = z.infer<typeof updateHostProfileSchema>;
|
||||
|
||||
// ============================================
|
||||
// ACCEPT AGREEMENT
|
||||
// ============================================
|
||||
|
||||
/**
|
||||
* Accept agreement schema (just confirmation)
|
||||
*/
|
||||
export const acceptAgreementSchema = z.object({
|
||||
agreementAccepted: z.literal(true, {
|
||||
message: 'Agreement must be accepted',
|
||||
}),
|
||||
});
|
||||
|
||||
export type AcceptAgreementInput = z.infer<typeof acceptAgreementSchema>;
|
||||
13
src/common/utils/validation/host/index.ts
Normal file
13
src/common/utils/validation/host/index.ts
Normal file
@@ -0,0 +1,13 @@
|
||||
/**
|
||||
* Host Module Validation Schemas Index
|
||||
* Export all host-related validation schemas
|
||||
*/
|
||||
|
||||
// Authentication & Onboarding
|
||||
export * from './auth.validation';
|
||||
export * from './login.validation';
|
||||
export * from './addPaymentDetails.validation';
|
||||
export * from './hostCompanyDetails.validation';
|
||||
|
||||
// Activity Management
|
||||
export * from './activity.validation';
|
||||
@@ -1,20 +1,16 @@
|
||||
// validations/hostBankDetails.validation.ts
|
||||
import { z } from "zod";
|
||||
/**
|
||||
* Host Login Validation Schema
|
||||
* Production-ready Zod validation for host login
|
||||
*/
|
||||
import { z } from 'zod';
|
||||
import { emailSchema } from '../validation.utils';
|
||||
|
||||
export const loginForHostSchema = z.object({
|
||||
|
||||
|
||||
emailAddress : z
|
||||
.string()
|
||||
.nonempty("Email is required"),
|
||||
|
||||
userPassword : z
|
||||
.string()
|
||||
.nonempty("Password is required")
|
||||
.min(8, { message: "Password must be at least 8 characters" }),
|
||||
|
||||
|
||||
emailAddress: emailSchema,
|
||||
|
||||
userPassword: z
|
||||
.string()
|
||||
.min(1, 'Password is required'),
|
||||
});
|
||||
|
||||
export type loginForHostSchema = z.infer<typeof loginForHostSchema>;
|
||||
export type LoginForHostInput = z.infer<typeof loginForHostSchema>;
|
||||
|
||||
16
src/common/utils/validation/index.ts
Normal file
16
src/common/utils/validation/index.ts
Normal file
@@ -0,0 +1,16 @@
|
||||
/**
|
||||
* Validation Module Index
|
||||
* Central export for all validation schemas and utilities
|
||||
*/
|
||||
|
||||
// Validation Utilities
|
||||
export * from './validation.utils';
|
||||
|
||||
// Host Module Validations
|
||||
export * as hostValidation from './host';
|
||||
|
||||
// Minglar Admin Module Validations
|
||||
export * as minglarValidation from './minglaradmin';
|
||||
|
||||
// Prepopulate Module Validations
|
||||
export * as prepopulateValidation from './prepopulate';
|
||||
107
src/common/utils/validation/minglaradmin/auth.validation.ts
Normal file
107
src/common/utils/validation/minglaradmin/auth.validation.ts
Normal file
@@ -0,0 +1,107 @@
|
||||
/**
|
||||
* Minglar Admin Authentication Validation Schemas
|
||||
* Production-ready Zod validations for admin authentication
|
||||
* Compatible with Zod v4
|
||||
*/
|
||||
import { z } from 'zod';
|
||||
import { emailSchema, simplePasswordSchema, otpSchema } from '../validation.utils';
|
||||
|
||||
// ============================================
|
||||
// REGISTRATION
|
||||
// ============================================
|
||||
|
||||
/**
|
||||
* Minglar admin registration schema
|
||||
*/
|
||||
export const minglarRegistrationSchema = z.object({
|
||||
email: emailSchema,
|
||||
});
|
||||
|
||||
export type MinglarRegistrationInput = z.infer<typeof minglarRegistrationSchema>;
|
||||
|
||||
// ============================================
|
||||
// LOGIN
|
||||
// ============================================
|
||||
|
||||
/**
|
||||
* Minglar admin login schema
|
||||
*/
|
||||
export const minglarLoginSchema = z.object({
|
||||
emailAddress: emailSchema,
|
||||
userPassword: z
|
||||
.string()
|
||||
.min(1, 'Password is required'),
|
||||
});
|
||||
|
||||
export type MinglarLoginInput = z.infer<typeof minglarLoginSchema>;
|
||||
|
||||
// ============================================
|
||||
// CREATE PASSWORD
|
||||
// ============================================
|
||||
|
||||
/**
|
||||
* Create password schema with confirmation
|
||||
*/
|
||||
export const minglarCreatePasswordSchema = z
|
||||
.object({
|
||||
password: simplePasswordSchema,
|
||||
confirmPassword: z.string().min(1, 'Confirm password is required'),
|
||||
})
|
||||
.refine((data) => data.password === data.confirmPassword, {
|
||||
message: 'Password and confirm password do not match',
|
||||
path: ['confirmPassword'],
|
||||
});
|
||||
|
||||
export type MinglarCreatePasswordInput = z.infer<typeof minglarCreatePasswordSchema>;
|
||||
|
||||
// ============================================
|
||||
// VERIFY OTP
|
||||
// ============================================
|
||||
|
||||
/**
|
||||
* OTP verification schema
|
||||
*/
|
||||
export const minglarVerifyOtpSchema = z.object({
|
||||
otp: otpSchema,
|
||||
});
|
||||
|
||||
export type MinglarVerifyOtpInput = z.infer<typeof minglarVerifyOtpSchema>;
|
||||
|
||||
// ============================================
|
||||
// UPDATE PROFILE
|
||||
// ============================================
|
||||
|
||||
/**
|
||||
* Admin profile update schema
|
||||
*/
|
||||
export const minglarUpdateProfileSchema = z.object({
|
||||
firstName: z
|
||||
.string()
|
||||
.min(1, 'First name is required')
|
||||
.max(50, 'First name cannot exceed 50 characters')
|
||||
.optional(),
|
||||
lastName: z
|
||||
.string()
|
||||
.min(1, 'Last name is required')
|
||||
.max(50, 'Last name cannot exceed 50 characters')
|
||||
.optional(),
|
||||
mobileNumber: z
|
||||
.string()
|
||||
.max(15, 'Mobile number cannot exceed 15 digits')
|
||||
.regex(/^[0-9]*$/, 'Mobile number must contain only digits')
|
||||
.optional(),
|
||||
isdCode: z
|
||||
.string()
|
||||
.max(6, 'ISD code cannot exceed 6 characters')
|
||||
.optional(),
|
||||
dateOfBirth: z
|
||||
.string()
|
||||
.refine((val) => !val || !isNaN(Date.parse(val)), 'Invalid date format')
|
||||
.optional(),
|
||||
profileImage: z
|
||||
.string()
|
||||
.max(500, 'Profile image path cannot exceed 500 characters')
|
||||
.optional(),
|
||||
});
|
||||
|
||||
export type MinglarUpdateProfileInput = z.infer<typeof minglarUpdateProfileSchema>;
|
||||
252
src/common/utils/validation/minglaradmin/hosthub.validation.ts
Normal file
252
src/common/utils/validation/minglaradmin/hosthub.validation.ts
Normal file
@@ -0,0 +1,252 @@
|
||||
/**
|
||||
* Minglar Admin Host Hub Validation Schemas
|
||||
* Production-ready Zod validations for host management by admins
|
||||
*/
|
||||
import { z } from 'zod';
|
||||
import { idSchema, searchQuerySchema, paginationSchema } from '../validation.utils';
|
||||
|
||||
// ============================================
|
||||
// GET ALL HOST APPLICATIONS
|
||||
// ============================================
|
||||
|
||||
/**
|
||||
* Query params for getting all host applications
|
||||
*/
|
||||
export const getAllHostApplicationsQuerySchema = z.object({
|
||||
search: searchQuerySchema,
|
||||
userStatus: z
|
||||
.string()
|
||||
.max(20, 'Status cannot exceed 20 characters')
|
||||
.optional(),
|
||||
roleFilter: z
|
||||
.string()
|
||||
.max(30, 'Role filter cannot exceed 30 characters')
|
||||
.optional(),
|
||||
...paginationSchema.shape,
|
||||
});
|
||||
|
||||
export type GetAllHostApplicationsQuery = z.infer<typeof getAllHostApplicationsQuerySchema>;
|
||||
|
||||
// ============================================
|
||||
// ASSIGN AM TO HOST
|
||||
// ============================================
|
||||
|
||||
/**
|
||||
* Assign account manager to host schema
|
||||
*/
|
||||
export const assignAmToHostSchema = z.object({
|
||||
hostXid: idSchema.describe('Host ID'),
|
||||
accountManagerXid: idSchema.describe('Account Manager ID'),
|
||||
});
|
||||
|
||||
export type AssignAmToHostInput = z.infer<typeof assignAmToHostSchema>;
|
||||
|
||||
// ============================================
|
||||
// UPDATE HOST STATUS
|
||||
// ============================================
|
||||
|
||||
/**
|
||||
* Update host status schema
|
||||
*/
|
||||
export const updateHostStatusSchema = z.object({
|
||||
hostXid: idSchema.describe('Host ID'),
|
||||
status: z
|
||||
.enum(['approved', 'rejected', 'pending', 'resubmit'])
|
||||
.describe('New host status'),
|
||||
remarks: z
|
||||
.string()
|
||||
.max(500, 'Remarks cannot exceed 500 characters')
|
||||
.optional(),
|
||||
});
|
||||
|
||||
export type UpdateHostStatusInput = z.infer<typeof updateHostStatusSchema>;
|
||||
|
||||
// ============================================
|
||||
// GET HOST BY ID
|
||||
// ============================================
|
||||
|
||||
/**
|
||||
* Get host by ID query params
|
||||
*/
|
||||
export const getHostByIdQuerySchema = z.object({
|
||||
hostXid: z.coerce
|
||||
.number()
|
||||
.int('Host ID must be an integer')
|
||||
.positive('Host ID must be positive'),
|
||||
});
|
||||
|
||||
export type GetHostByIdQuery = z.infer<typeof getHostByIdQuerySchema>;
|
||||
|
||||
// ============================================
|
||||
// ADD HOST SUGGESTION
|
||||
// ============================================
|
||||
|
||||
/**
|
||||
* Add suggestion to host schema
|
||||
*/
|
||||
export const addHostSuggestionSchema = z.object({
|
||||
hostXid: idSchema.describe('Host ID'),
|
||||
title: z
|
||||
.string()
|
||||
.min(1, 'Title is required')
|
||||
.max(100, 'Title cannot exceed 100 characters'),
|
||||
comments: z
|
||||
.string()
|
||||
.min(1, 'Comments are required')
|
||||
.max(500, 'Comments cannot exceed 500 characters'),
|
||||
isParent: z.boolean().optional().default(false),
|
||||
});
|
||||
|
||||
export type AddHostSuggestionInput = z.infer<typeof addHostSuggestionSchema>;
|
||||
|
||||
// ============================================
|
||||
// AGREEMENT SETTINGS
|
||||
// ============================================
|
||||
|
||||
/**
|
||||
* Update agreement settings schema
|
||||
*/
|
||||
export const updateAgreementSettingsSchema = z.object({
|
||||
hostXid: idSchema.describe('Host ID'),
|
||||
agreementStartDate: z
|
||||
.string()
|
||||
.refine((val) => !isNaN(Date.parse(val)), 'Invalid date format'),
|
||||
durationNumber: z
|
||||
.number()
|
||||
.int('Duration must be an integer')
|
||||
.positive('Duration must be positive'),
|
||||
durationFrequency: z.enum(['days', 'months', 'years']),
|
||||
isCommisionBase: z.boolean(),
|
||||
commisionPer: z
|
||||
.number()
|
||||
.min(0, 'Commission percentage must be at least 0')
|
||||
.max(100, 'Commission percentage cannot exceed 100')
|
||||
.optional(),
|
||||
amountPerBooking: z
|
||||
.number()
|
||||
.int('Amount must be an integer')
|
||||
.positive('Amount must be positive')
|
||||
.optional(),
|
||||
payoutDurationNum: z
|
||||
.number()
|
||||
.int('Payout duration must be an integer')
|
||||
.positive('Payout duration must be positive')
|
||||
.optional(),
|
||||
payoutDurationFrequency: z.enum(['days', 'months', 'years']).optional(),
|
||||
});
|
||||
|
||||
export type UpdateAgreementSettingsInput = z.infer<typeof updateAgreementSettingsSchema>;
|
||||
|
||||
// ============================================
|
||||
// ACCEPT/REJECT HOST APPLICATION (by hostXid)
|
||||
// ============================================
|
||||
|
||||
/**
|
||||
* Host application action schema (accept/reject by AM or Admin)
|
||||
*/
|
||||
export const hostApplicationActionSchema = z.object({
|
||||
hostXid: idSchema.describe('Host ID'),
|
||||
});
|
||||
|
||||
export type HostApplicationActionInput = z.infer<typeof hostApplicationActionSchema>;
|
||||
|
||||
// ============================================
|
||||
// ADD PQQ SUGGESTION
|
||||
// ============================================
|
||||
|
||||
/**
|
||||
* Add PQQ suggestion schema
|
||||
*/
|
||||
export const addPqqSuggestionSchema = z.object({
|
||||
title: z
|
||||
.string()
|
||||
.min(1, 'Title is required')
|
||||
.max(100, 'Title cannot exceed 100 characters'),
|
||||
comments: z
|
||||
.string()
|
||||
.min(1, 'Comments are required')
|
||||
.max(500, 'Comments cannot exceed 500 characters'),
|
||||
activity_pqq_header_xid: idSchema.describe('Activity PQQ Header ID'),
|
||||
});
|
||||
|
||||
export type AddPqqSuggestionInput = z.infer<typeof addPqqSuggestionSchema>;
|
||||
|
||||
// ============================================
|
||||
// GET HOST BY ID (path param)
|
||||
// ============================================
|
||||
|
||||
/**
|
||||
* Get host by ID from path params
|
||||
*/
|
||||
export const getHostByIdPathSchema = z.object({
|
||||
host_xid: z.coerce
|
||||
.number()
|
||||
.int('Host ID must be an integer')
|
||||
.positive('Host ID must be positive'),
|
||||
});
|
||||
|
||||
export type GetHostByIdPathInput = z.infer<typeof getHostByIdPathSchema>;
|
||||
|
||||
/**
|
||||
* Get host by ID from path params (alternative with 'id')
|
||||
*/
|
||||
export const getHostByIdAltPathSchema = z.object({
|
||||
id: z.coerce
|
||||
.number()
|
||||
.int('Host ID must be an integer')
|
||||
.positive('Host ID must be positive'),
|
||||
});
|
||||
|
||||
export type GetHostByIdAltPathInput = z.infer<typeof getHostByIdAltPathSchema>;
|
||||
|
||||
// ============================================
|
||||
// REJECT PQQ BY AM
|
||||
// ============================================
|
||||
|
||||
/**
|
||||
* Reject PQQ by AM schema
|
||||
*/
|
||||
export const rejectPqqByAmSchema = z.object({
|
||||
activityId: idSchema.describe('Activity ID'),
|
||||
});
|
||||
|
||||
export type RejectPqqByAmInput = z.infer<typeof rejectPqqByAmSchema>;
|
||||
|
||||
// ============================================
|
||||
// EDIT AGREEMENT DETAILS
|
||||
// ============================================
|
||||
|
||||
/**
|
||||
* Edit agreement details schema
|
||||
*/
|
||||
export const editAgreementDetailsSchema = z.object({
|
||||
host_xid: idSchema.describe('Host ID'),
|
||||
agreementStartDate: z
|
||||
.string()
|
||||
.min(1, 'Agreement start date is required')
|
||||
.refine((val) => !isNaN(Date.parse(val)), 'Invalid date format'),
|
||||
duration: z
|
||||
.number()
|
||||
.int('Duration must be an integer')
|
||||
.positive('Duration must be positive'),
|
||||
isCommisionBase: z.boolean(),
|
||||
commisionPer: z
|
||||
.number()
|
||||
.min(0, 'Commission percentage must be at least 0')
|
||||
.max(100, 'Commission percentage cannot exceed 100')
|
||||
.optional(),
|
||||
amountPerBooking: z
|
||||
.number()
|
||||
.int('Amount must be an integer')
|
||||
.positive('Amount must be positive')
|
||||
.optional(),
|
||||
durationFrequency: z.string().min(1, 'Duration frequency is required'),
|
||||
payoutDurationNum: z
|
||||
.number()
|
||||
.int('Payout duration must be an integer')
|
||||
.positive('Payout duration must be positive')
|
||||
.optional(),
|
||||
payoutDurationFrequency: z.string().optional(),
|
||||
});
|
||||
|
||||
export type EditAgreementDetailsInput = z.infer<typeof editAgreementDetailsSchema>;
|
||||
13
src/common/utils/validation/minglaradmin/index.ts
Normal file
13
src/common/utils/validation/minglaradmin/index.ts
Normal file
@@ -0,0 +1,13 @@
|
||||
/**
|
||||
* Minglar Admin Module Validation Schemas Index
|
||||
* Export all minglar admin-related validation schemas
|
||||
*/
|
||||
|
||||
// Authentication
|
||||
export * from './auth.validation';
|
||||
|
||||
// Teammate Management
|
||||
export * from './teammate.validation';
|
||||
|
||||
// Host Hub Management
|
||||
export * from './hosthub.validation';
|
||||
117
src/common/utils/validation/minglaradmin/teammate.validation.ts
Normal file
117
src/common/utils/validation/minglaradmin/teammate.validation.ts
Normal file
@@ -0,0 +1,117 @@
|
||||
/**
|
||||
* Minglar Admin Teammate Management Validation Schemas
|
||||
* Production-ready Zod validations for teammate/invite management
|
||||
*/
|
||||
import { z } from 'zod';
|
||||
import { emailSchema, idSchema, searchQuerySchema, paginationSchema } from '../validation.utils';
|
||||
import { ROLE } from '../../constants/common.constant';
|
||||
|
||||
// ============================================
|
||||
// INVITE TEAMMATE
|
||||
// ============================================
|
||||
|
||||
/**
|
||||
* Invite teammate schema
|
||||
*/
|
||||
export const inviteTeammateSchema = z.object({
|
||||
emailAddress: emailSchema,
|
||||
|
||||
roleXid: z
|
||||
.number()
|
||||
.int('Role ID must be an integer')
|
||||
.refine(
|
||||
(val) => [ROLE.CO_ADMIN, ROLE.ACCOUNT_MANAGER].includes(val),
|
||||
'Invalid role. Only Co-Admin and Account Manager roles can be assigned'
|
||||
),
|
||||
|
||||
isFixedSalary: z.boolean(),
|
||||
|
||||
perValue: z
|
||||
.number()
|
||||
.positive('Per value must be greater than 0')
|
||||
.optional(),
|
||||
}).refine(
|
||||
(data) => {
|
||||
// If Account Manager and not fixed salary, perValue is required
|
||||
if (data.roleXid === ROLE.ACCOUNT_MANAGER && !data.isFixedSalary) {
|
||||
return data.perValue !== undefined && data.perValue > 0;
|
||||
}
|
||||
return true;
|
||||
},
|
||||
{
|
||||
message: 'Per value is required for commission-based Account Managers',
|
||||
path: ['perValue'],
|
||||
}
|
||||
);
|
||||
|
||||
export type InviteTeammateInput = z.infer<typeof inviteTeammateSchema>;
|
||||
|
||||
// ============================================
|
||||
// GET ALL COADMIN AND AM (with search)
|
||||
// ============================================
|
||||
|
||||
/**
|
||||
* Query params for getting co-admins and account managers
|
||||
*/
|
||||
export const getAllCoadminAndAMQuerySchema = z.object({
|
||||
search: searchQuerySchema,
|
||||
});
|
||||
|
||||
export type GetAllCoadminAndAMQuery = z.infer<typeof getAllCoadminAndAMQuerySchema>;
|
||||
|
||||
// ============================================
|
||||
// GET ALL INVITED COADMIN AND AM (with search)
|
||||
// ============================================
|
||||
|
||||
/**
|
||||
* Query params for getting invited co-admins and account managers
|
||||
*/
|
||||
export const getAllInvitedCoadminAndAMQuerySchema = z.object({
|
||||
search: searchQuerySchema,
|
||||
});
|
||||
|
||||
export type GetAllInvitedCoadminAndAMQuery = z.infer<typeof getAllInvitedCoadminAndAMQuerySchema>;
|
||||
|
||||
// ============================================
|
||||
// GET INVITATION DETAILS (with search)
|
||||
// ============================================
|
||||
|
||||
/**
|
||||
* Query params for getting invitation details
|
||||
*/
|
||||
export const getInvitationDetailsQuerySchema = z.object({
|
||||
search: searchQuerySchema,
|
||||
});
|
||||
|
||||
export type GetInvitationDetailsQuery = z.infer<typeof getInvitationDetailsQuerySchema>;
|
||||
|
||||
// ============================================
|
||||
// UPDATE TEAMMATE STATUS
|
||||
// ============================================
|
||||
|
||||
/**
|
||||
* Update teammate status schema
|
||||
*/
|
||||
export const updateTeammateStatusSchema = z.object({
|
||||
userId: idSchema.describe('User ID'),
|
||||
status: z.enum(['active', 'inactive', 'suspended']),
|
||||
});
|
||||
|
||||
export type UpdateTeammateStatusInput = z.infer<typeof updateTeammateStatusSchema>;
|
||||
|
||||
// ============================================
|
||||
// ASSIGN REVENUE
|
||||
// ============================================
|
||||
|
||||
/**
|
||||
* Assign revenue to teammate schema
|
||||
*/
|
||||
export const assignRevenueSchema = z.object({
|
||||
userId: idSchema.describe('User ID'),
|
||||
isFixedSalary: z.boolean(),
|
||||
perValue: z
|
||||
.number()
|
||||
.positive('Per value must be greater than 0'),
|
||||
});
|
||||
|
||||
export type AssignRevenueInput = z.infer<typeof assignRevenueSchema>;
|
||||
6
src/common/utils/validation/prepopulate/index.ts
Normal file
6
src/common/utils/validation/prepopulate/index.ts
Normal file
@@ -0,0 +1,6 @@
|
||||
/**
|
||||
* Prepopulate Module Validation Schemas Index
|
||||
* Export all prepopulate-related validation schemas
|
||||
*/
|
||||
|
||||
export * from './prepopulate.validation';
|
||||
@@ -0,0 +1,53 @@
|
||||
/**
|
||||
* Prepopulate Module Validation Schemas
|
||||
* Production-ready Zod validations for prepopulate endpoints
|
||||
*/
|
||||
import { z } from 'zod';
|
||||
|
||||
// ============================================
|
||||
// GET BANK BRANCHES BY BANK ID
|
||||
// ============================================
|
||||
|
||||
/**
|
||||
* Get bank branches by bank ID query params
|
||||
*/
|
||||
export const getBankBranchesByBankIdQuerySchema = z.object({
|
||||
bankXid: z.coerce
|
||||
.number()
|
||||
.int('Bank ID must be an integer')
|
||||
.positive('Bank ID must be positive'),
|
||||
});
|
||||
|
||||
export type GetBankBranchesByBankIdQuery = z.infer<typeof getBankBranchesByBankIdQuerySchema>;
|
||||
|
||||
// ============================================
|
||||
// GET CITY BY STATE ID
|
||||
// ============================================
|
||||
|
||||
/**
|
||||
* Get city by state ID query params
|
||||
*/
|
||||
export const getCityByStateIdQuerySchema = z.object({
|
||||
stateXid: z.coerce
|
||||
.number()
|
||||
.int('State ID must be an integer')
|
||||
.positive('State ID must be positive'),
|
||||
});
|
||||
|
||||
export type GetCityByStateIdQuery = z.infer<typeof getCityByStateIdQuerySchema>;
|
||||
|
||||
// ============================================
|
||||
// GET AM DETAIL BY ID (path param)
|
||||
// ============================================
|
||||
|
||||
/**
|
||||
* Get AM detail by ID path params
|
||||
*/
|
||||
export const getAmDetailByIdPathSchema = z.object({
|
||||
amXid: z.coerce
|
||||
.number()
|
||||
.int('Account Manager ID must be an integer')
|
||||
.positive('Account Manager ID must be positive'),
|
||||
});
|
||||
|
||||
export type GetAmDetailByIdPath = z.infer<typeof getAmDetailByIdPathSchema>;
|
||||
358
src/common/utils/validation/validation.utils.ts
Normal file
358
src/common/utils/validation/validation.utils.ts
Normal file
@@ -0,0 +1,358 @@
|
||||
/**
|
||||
* Production-Ready Validation Utilities
|
||||
* Centralized validation helpers for Zod schemas
|
||||
* Compatible with Zod v4
|
||||
*/
|
||||
import { z, ZodError, ZodSchema } from 'zod';
|
||||
import ApiError from '../helper/ApiError';
|
||||
|
||||
/**
|
||||
* Formats Zod validation errors into user-friendly messages
|
||||
*/
|
||||
export function formatZodErrors(error: ZodError): string {
|
||||
return error.issues
|
||||
.map((issue) => {
|
||||
const path = issue.path.length > 0 ? `${issue.path.join('.')}: ` : '';
|
||||
return `${path}${issue.message}`;
|
||||
})
|
||||
.join('; ');
|
||||
}
|
||||
|
||||
/**
|
||||
* Validates data against a Zod schema and throws ApiError on failure
|
||||
* @param schema - Zod schema to validate against
|
||||
* @param data - Data to validate
|
||||
* @param errorCode - HTTP status code for validation errors (default: 400)
|
||||
* @returns Validated and typed data
|
||||
*/
|
||||
export function validateSchema<T>(
|
||||
schema: ZodSchema<T>,
|
||||
data: unknown,
|
||||
errorCode: number = 400
|
||||
): T {
|
||||
const result = schema.safeParse(data);
|
||||
|
||||
if (!result.success) {
|
||||
const errorMessage = formatZodErrors(result.error);
|
||||
throw new ApiError(errorCode, `Validation failed: ${errorMessage}`);
|
||||
}
|
||||
|
||||
return result.data;
|
||||
}
|
||||
|
||||
/**
|
||||
* Safe validation that returns result object instead of throwing
|
||||
*/
|
||||
export function safeValidate<T>(
|
||||
schema: ZodSchema<T>,
|
||||
data: unknown
|
||||
): { success: true; data: T } | { success: false; errors: string } {
|
||||
const result = schema.safeParse(data);
|
||||
|
||||
if (!result.success) {
|
||||
return {
|
||||
success: false,
|
||||
errors: formatZodErrors(result.error),
|
||||
};
|
||||
}
|
||||
|
||||
return {
|
||||
success: true,
|
||||
data: result.data,
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* Parses JSON body from API Gateway event safely
|
||||
*/
|
||||
export function parseBody<T>(
|
||||
body: string | null,
|
||||
schema: ZodSchema<T>
|
||||
): T {
|
||||
if (!body) {
|
||||
throw new ApiError(400, 'Request body is required');
|
||||
}
|
||||
|
||||
let parsedBody: unknown;
|
||||
try {
|
||||
parsedBody = JSON.parse(body);
|
||||
} catch {
|
||||
throw new ApiError(400, 'Invalid JSON in request body');
|
||||
}
|
||||
|
||||
return validateSchema(schema, parsedBody);
|
||||
}
|
||||
|
||||
/**
|
||||
* Parses query string parameters with validation
|
||||
*/
|
||||
export function parseQueryParams<T>(
|
||||
params: Record<string, string | undefined> | null,
|
||||
schema: ZodSchema<T>
|
||||
): T {
|
||||
return validateSchema(schema, params || {});
|
||||
}
|
||||
|
||||
// ============================================
|
||||
// COMMON REUSABLE FIELD SCHEMAS (Zod v4 compatible)
|
||||
// ============================================
|
||||
|
||||
/**
|
||||
* Email validation with proper format
|
||||
*/
|
||||
export const emailSchema = z
|
||||
.string()
|
||||
.min(1, 'Email is required')
|
||||
.email('Invalid email format')
|
||||
.max(150, 'Email cannot exceed 150 characters')
|
||||
.transform((val) => val.toLowerCase().trim());
|
||||
|
||||
/**
|
||||
* Password validation with security requirements
|
||||
*/
|
||||
export const passwordSchema = z
|
||||
.string()
|
||||
.min(8, 'Password must be at least 8 characters')
|
||||
.max(255, 'Password cannot exceed 255 characters')
|
||||
.regex(
|
||||
/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&])[A-Za-z\d@$!%*?&]/,
|
||||
'Password must contain at least one uppercase letter, one lowercase letter, one number and one special character'
|
||||
);
|
||||
|
||||
/**
|
||||
* Simple password (for cases where strong password isn't required)
|
||||
*/
|
||||
export const simplePasswordSchema = z
|
||||
.string()
|
||||
.min(8, 'Password must be at least 8 characters')
|
||||
.max(255, 'Password cannot exceed 255 characters');
|
||||
|
||||
/**
|
||||
* Mobile number validation (international format)
|
||||
*/
|
||||
export const mobileNumberSchema = z
|
||||
.string()
|
||||
.min(7, 'Mobile number must be at least 7 digits')
|
||||
.max(15, 'Mobile number cannot exceed 15 digits')
|
||||
.regex(/^[0-9]+$/, 'Mobile number must contain only digits')
|
||||
.optional();
|
||||
|
||||
/**
|
||||
* ISD Code validation
|
||||
*/
|
||||
export const isdCodeSchema = z
|
||||
.string()
|
||||
.max(6, 'ISD code cannot exceed 6 characters')
|
||||
.regex(/^\+?[0-9]+$/, 'Invalid ISD code format')
|
||||
.optional();
|
||||
|
||||
/**
|
||||
* Name validation (first name, last name, etc.)
|
||||
*/
|
||||
export const nameSchema = z
|
||||
.string()
|
||||
.min(1, 'Name is required')
|
||||
.max(50, 'Name cannot exceed 50 characters')
|
||||
.regex(/^[a-zA-Z\s'-]+$/, 'Name can only contain letters, spaces, hyphens and apostrophes');
|
||||
|
||||
/**
|
||||
* Optional name schema
|
||||
*/
|
||||
export const optionalNameSchema = nameSchema.optional();
|
||||
|
||||
/**
|
||||
* Positive integer ID validation
|
||||
*/
|
||||
export const idSchema = z
|
||||
.number()
|
||||
.int('ID must be an integer')
|
||||
.positive('ID must be a positive number');
|
||||
|
||||
/**
|
||||
* Optional positive integer ID
|
||||
*/
|
||||
export const optionalIdSchema = z
|
||||
.number()
|
||||
.int('ID must be an integer')
|
||||
.positive('ID must be a positive number')
|
||||
.optional();
|
||||
|
||||
/**
|
||||
* Coerce string to number for query params
|
||||
*/
|
||||
export const numericStringSchema = z
|
||||
.string()
|
||||
.transform((val) => parseInt(val, 10))
|
||||
.pipe(z.number().int().positive());
|
||||
|
||||
/**
|
||||
* Optional numeric string
|
||||
*/
|
||||
export const optionalNumericStringSchema = z
|
||||
.string()
|
||||
.optional()
|
||||
.transform((val) => (val ? parseInt(val, 10) : undefined))
|
||||
.pipe(z.number().int().positive().optional());
|
||||
|
||||
/**
|
||||
* Address line validation
|
||||
*/
|
||||
export const addressLine1Schema = z
|
||||
.string()
|
||||
.min(1, 'Address is required')
|
||||
.max(150, 'Address cannot exceed 150 characters');
|
||||
|
||||
export const addressLine2Schema = z
|
||||
.string()
|
||||
.max(150, 'Address cannot exceed 150 characters')
|
||||
.optional();
|
||||
|
||||
/**
|
||||
* Pin/Zip code validation
|
||||
*/
|
||||
export const pinCodeSchema = z
|
||||
.string()
|
||||
.min(4, 'Pin code must be at least 4 characters')
|
||||
.max(30, 'Pin code cannot exceed 30 characters');
|
||||
|
||||
/**
|
||||
* URL validation
|
||||
*/
|
||||
export const urlSchema = z
|
||||
.string()
|
||||
.url('Invalid URL format')
|
||||
.max(500, 'URL cannot exceed 500 characters')
|
||||
.optional()
|
||||
.or(z.literal(''));
|
||||
|
||||
/**
|
||||
* Social media URL (with empty string handling)
|
||||
*/
|
||||
export const socialUrlSchema = z
|
||||
.string()
|
||||
.max(80, 'URL cannot exceed 80 characters')
|
||||
.refine(
|
||||
(val) => !val || val === '' || z.string().url().safeParse(val).success,
|
||||
'Invalid URL format'
|
||||
)
|
||||
.optional();
|
||||
|
||||
/**
|
||||
* Date string validation
|
||||
*/
|
||||
export const dateStringSchema = z
|
||||
.string()
|
||||
.refine((val) => !isNaN(Date.parse(val)), 'Invalid date format')
|
||||
.transform((val) => new Date(val));
|
||||
|
||||
/**
|
||||
* Optional date string
|
||||
*/
|
||||
export const optionalDateStringSchema = z
|
||||
.string()
|
||||
.refine((val) => !val || !isNaN(Date.parse(val)), 'Invalid date format')
|
||||
.optional();
|
||||
|
||||
/**
|
||||
* Boolean schema with string coercion (for query params)
|
||||
*/
|
||||
export const booleanStringSchema = z
|
||||
.string()
|
||||
.transform((val) => val === 'true' || val === '1')
|
||||
.pipe(z.boolean());
|
||||
|
||||
/**
|
||||
* OTP validation (6 digits)
|
||||
*/
|
||||
export const otpSchema = z
|
||||
.string()
|
||||
.length(6, 'OTP must be exactly 6 digits')
|
||||
.regex(/^[0-9]+$/, 'OTP must contain only digits');
|
||||
|
||||
/**
|
||||
* Search query validation
|
||||
*/
|
||||
export const searchQuerySchema = z
|
||||
.string()
|
||||
.max(100, 'Search query cannot exceed 100 characters')
|
||||
.transform((val) => val.trim())
|
||||
.optional();
|
||||
|
||||
/**
|
||||
* Pagination parameters
|
||||
*/
|
||||
export const paginationSchema = z.object({
|
||||
page: z.coerce.number().int().positive().default(1),
|
||||
limit: z.coerce.number().int().positive().max(100).default(10),
|
||||
});
|
||||
|
||||
/**
|
||||
* File path validation for S3
|
||||
*/
|
||||
export const filePathSchema = z
|
||||
.string()
|
||||
.max(500, 'File path cannot exceed 500 characters')
|
||||
.optional();
|
||||
|
||||
/**
|
||||
* Registration/Reference number validation
|
||||
*/
|
||||
export const registrationNumberSchema = z
|
||||
.string()
|
||||
.max(30, 'Registration number cannot exceed 30 characters')
|
||||
.optional();
|
||||
|
||||
/**
|
||||
* PAN number validation (India)
|
||||
*/
|
||||
export const panNumberSchema = z
|
||||
.string()
|
||||
.max(30, 'PAN number cannot exceed 30 characters')
|
||||
.regex(/^[A-Z]{5}[0-9]{4}[A-Z]{1}$/, 'Invalid PAN number format')
|
||||
.optional()
|
||||
.or(z.literal(''));
|
||||
|
||||
/**
|
||||
* GST number validation (India)
|
||||
*/
|
||||
export const gstNumberSchema = z
|
||||
.string()
|
||||
.max(30, 'GST number cannot exceed 30 characters')
|
||||
.regex(
|
||||
/^[0-9]{2}[A-Z]{5}[0-9]{4}[A-Z]{1}[1-9A-Z]{1}Z[0-9A-Z]{1}$/,
|
||||
'Invalid GST number format'
|
||||
)
|
||||
.optional()
|
||||
.or(z.literal(''));
|
||||
|
||||
/**
|
||||
* IFSC code validation (India)
|
||||
*/
|
||||
export const ifscCodeSchema = z
|
||||
.string()
|
||||
.min(1, 'IFSC code is required')
|
||||
.regex(/^[A-Z]{4}0[A-Z0-9]{6}$/, 'Invalid IFSC code format');
|
||||
|
||||
/**
|
||||
* Bank account number validation
|
||||
*/
|
||||
export const accountNumberSchema = z
|
||||
.string()
|
||||
.min(9, 'Account number must be at least 9 digits')
|
||||
.max(18, 'Account number cannot exceed 18 digits')
|
||||
.regex(/^[0-9]+$/, 'Account number must contain only digits');
|
||||
|
||||
/**
|
||||
* Company name validation
|
||||
*/
|
||||
export const companyNameSchema = z
|
||||
.string()
|
||||
.min(1, 'Company name is required')
|
||||
.max(100, 'Company name cannot exceed 100 characters');
|
||||
|
||||
/**
|
||||
* Token validation
|
||||
*/
|
||||
export const tokenSchema = z
|
||||
.string()
|
||||
.min(1, 'Authentication token is required');
|
||||
@@ -5,15 +5,15 @@ import { safeHandler } from '../../../../../common/utils/handlers/safeHandler';
|
||||
import ApiError from '../../../../../common/utils/helper/ApiError';
|
||||
import { HostService } from '../../../services/host.service';
|
||||
import { PrePopulateService } from '../../../../prepopulate/services/prepopulate.service';
|
||||
import { parseQueryParams } from '../../../../../common/utils/validation/validation.utils';
|
||||
import { optionalSearchQuerySchema } from '../../../../../common/utils/validation/host/activity.validation';
|
||||
|
||||
const prismaService = new PrismaService();
|
||||
const hostService = new HostService(prismaService);
|
||||
const prePopulateService = new PrePopulateService(prismaService);
|
||||
|
||||
/**
|
||||
* Add suggestion handler for host applications
|
||||
* Allows Minglar Admin, Co_Admin, and Account Manager to add suggestions
|
||||
* Types: Setup Profile, Review Account, Add Payment Details, Agreement
|
||||
* Get all activity types with interest handler
|
||||
*/
|
||||
export const handler = safeHandler(async (
|
||||
event: APIGatewayProxyEvent,
|
||||
@@ -28,11 +28,11 @@ export const handler = safeHandler(async (
|
||||
// Verify token and get user info
|
||||
const userInfo = await verifyHostToken(token);
|
||||
|
||||
// Parse and validate query params using Zod
|
||||
const { search, q } = parseQueryParams(event.queryStringParameters, optionalSearchQuerySchema);
|
||||
const searchTerm = search || q || undefined;
|
||||
|
||||
// Read optional search query (supports ?search= or ?q=)
|
||||
const search = event.queryStringParameters?.search || event.queryStringParameters?.q || undefined;
|
||||
|
||||
const data = await hostService.getAllActivityTypesWithInterest(search);
|
||||
const data = await hostService.getAllActivityTypesWithInterest(searchTerm);
|
||||
const frequencies = await prePopulateService.getAllFrequencies();
|
||||
|
||||
return {
|
||||
|
||||
@@ -4,7 +4,8 @@ import { PrismaService } from '../../../../../common/database/prisma.service';
|
||||
import { safeHandler } from '../../../../../common/utils/handlers/safeHandler';
|
||||
import ApiError from '../../../../../common/utils/helper/ApiError';
|
||||
import { HostService } from '../../../services/host.service';
|
||||
import { string } from 'zod';
|
||||
import { parseQueryParams } from '../../../../../common/utils/validation/validation.utils';
|
||||
import { optionalSearchQuerySchema } from '../../../../../common/utils/validation/host/activity.validation';
|
||||
|
||||
|
||||
const prismaService = new PrismaService();
|
||||
@@ -12,9 +13,7 @@ const hostService = new HostService(prismaService);
|
||||
|
||||
|
||||
/**
|
||||
* Add suggestion handler for host applications
|
||||
* Allows Minglar Admin, Co_Admin, and Account Manager to add suggestions
|
||||
* Types: Setup Profile, Review Account, Add Payment Details, Agreement
|
||||
* Get all host activities handler
|
||||
*/
|
||||
export const handler = safeHandler(async (
|
||||
event: APIGatewayProxyEvent,
|
||||
@@ -29,11 +28,11 @@ export const handler = safeHandler(async (
|
||||
// Verify token and get user info
|
||||
const userInfo = await verifyHostToken(token);
|
||||
|
||||
// Parse and validate query params using Zod
|
||||
const { search, q } = parseQueryParams(event.queryStringParameters, optionalSearchQuerySchema);
|
||||
const searchTerm = search || q || undefined;
|
||||
|
||||
// Read optional search query (supports ?search= or ?q=)
|
||||
const search = event.queryStringParameters?.search || event.queryStringParameters?.q || undefined;
|
||||
|
||||
const data = await hostService.getAllHostActivity(search ? String(search) : undefined, Number(userInfo.id));
|
||||
const data = await hostService.getAllHostActivity(searchTerm, Number(userInfo.id));
|
||||
|
||||
|
||||
return {
|
||||
|
||||
@@ -2,9 +2,10 @@ 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 { verifyHostToken } from '@/common/middlewares/jwt/authForHost';
|
||||
import { HostService } from '../../../services/host.service';
|
||||
import { verifyMinglarAdminHostToken } from '@/common/middlewares/jwt/authForMinglarAdmin&Host';
|
||||
import { parseQueryParams } from '../../../../../common/utils/validation/validation.utils';
|
||||
import { getPqqByQuestionIdQuerySchema } from '../../../../../common/utils/validation/host/activity.validation';
|
||||
|
||||
const prismaService = new PrismaService();
|
||||
const hostService = new HostService(prismaService);
|
||||
@@ -22,12 +23,11 @@ export const handler = safeHandler(async (
|
||||
const userInfo = await verifyMinglarAdminHostToken(token);
|
||||
const userId = Number(userInfo.id);
|
||||
|
||||
const question_xid = Number(event.queryStringParameters?.question_xid);
|
||||
const activity_xid = Number(event.queryStringParameters?.activity_xid);
|
||||
|
||||
if (!question_xid || !activity_xid) {
|
||||
throw new ApiError(400, "Question and activity xid are required.")
|
||||
}
|
||||
// Parse and validate query params using Zod
|
||||
const { question_xid, activity_xid } = parseQueryParams(
|
||||
event.queryStringParameters,
|
||||
getPqqByQuestionIdQuerySchema
|
||||
);
|
||||
|
||||
// Fetch user with their HostHeader stepper info
|
||||
const pqqQuestionDetails = await hostService.getPQQQuestionDetail(question_xid, activity_xid);
|
||||
|
||||
@@ -4,6 +4,8 @@ import { PrismaService } from '../../../../../common/database/prisma.service';
|
||||
import ApiError from '../../../../../common/utils/helper/ApiError';
|
||||
import { verifyHostToken } from '@/common/middlewares/jwt/authForHost';
|
||||
import { HostService } from '../../../services/host.service';
|
||||
import { parseQueryParams } from '../../../../../common/utils/validation/validation.utils';
|
||||
import { getLatestPqqQuestionQuerySchema } from '../../../../../common/utils/validation/host/activity.validation';
|
||||
|
||||
const prismaService = new PrismaService();
|
||||
const hostService = new HostService(prismaService);
|
||||
@@ -21,14 +23,11 @@ export const handler = safeHandler(async (
|
||||
const userInfo = await verifyHostToken(token);
|
||||
const userId = Number(userInfo.id);
|
||||
|
||||
const activity_xid = event.queryStringParameters?.activity_xid
|
||||
? Number(event.queryStringParameters.activity_xid)
|
||||
: null;
|
||||
|
||||
// Validate it
|
||||
if (!activity_xid || isNaN(activity_xid)) {
|
||||
throw new ApiError(400, "Activity id is required and must be a number.");
|
||||
}
|
||||
// Parse and validate query params using Zod
|
||||
const { activity_xid } = parseQueryParams(
|
||||
event.queryStringParameters,
|
||||
getLatestPqqQuestionQuerySchema
|
||||
);
|
||||
|
||||
// Fetch user with their HostHeader stepper info
|
||||
const pqqQuestionDetails = await hostService.getLatestQuestionDetailsPQQ(activity_xid);
|
||||
|
||||
@@ -4,6 +4,8 @@ import { PrismaService } from '../../../../../common/database/prisma.service';
|
||||
import { safeHandler } from '../../../../../common/utils/handlers/safeHandler';
|
||||
import ApiError from '../../../../../common/utils/helper/ApiError';
|
||||
import { HostService } from '../../../services/host.service';
|
||||
import { parseBody } from '../../../../../common/utils/validation/validation.utils';
|
||||
import { createActivitySchema } from '../../../../../common/utils/validation/host/activity.validation';
|
||||
|
||||
const prismaService = new PrismaService();
|
||||
const hostService = new HostService(prismaService);
|
||||
@@ -17,23 +19,13 @@ export const handler = safeHandler(async (
|
||||
|
||||
const userInfo = await verifyHostToken(token);
|
||||
|
||||
let body: any = {};
|
||||
try {
|
||||
body = event.body ? JSON.parse(event.body) : {};
|
||||
} catch (err) {
|
||||
throw new ApiError(400, 'Invalid JSON in request body');
|
||||
}
|
||||
|
||||
const { activityTypeXid, frequenciesXid } = body;
|
||||
|
||||
if (!activityTypeXid) {
|
||||
throw new ApiError(400, 'activityTypeXid is required');
|
||||
}
|
||||
// Parse and validate request body using Zod
|
||||
const { activityTypeXid, frequenciesXid } = parseBody(event.body, createActivitySchema);
|
||||
|
||||
await hostService.createActivity(
|
||||
userInfo.id,
|
||||
Number(activityTypeXid),
|
||||
frequenciesXid ? Number(frequenciesXid) : undefined,
|
||||
activityTypeXid,
|
||||
frequenciesXid,
|
||||
);
|
||||
|
||||
return {
|
||||
|
||||
@@ -4,6 +4,8 @@ import { PrismaService } from '../../../../../common/database/prisma.service';
|
||||
import { safeHandler } from '../../../../../common/utils/handlers/safeHandler';
|
||||
import ApiError from '../../../../../common/utils/helper/ApiError';
|
||||
import { HostService } from '../../../services/host.service';
|
||||
import { parseBody } from '../../../../../common/utils/validation/validation.utils';
|
||||
import { updateSuggestionReviewedSchema } from '../../../../../common/utils/validation/host/activity.validation';
|
||||
|
||||
const prismaService = new PrismaService();
|
||||
const hostService = new HostService(prismaService);
|
||||
@@ -17,18 +19,8 @@ export const handler = safeHandler(async (
|
||||
|
||||
const userInfo = await verifyHostToken(token);
|
||||
|
||||
let body: any = {};
|
||||
try {
|
||||
body = event.body ? JSON.parse(event.body) : {};
|
||||
} catch (err) {
|
||||
throw new ApiError(400, 'Invalid JSON in request body');
|
||||
}
|
||||
|
||||
const { activityPqqHeaderXid, activityPQQSuggestionId } = body;
|
||||
|
||||
if (!activityPqqHeaderXid) {
|
||||
throw new ApiError(400, 'activityPqqHeaderXid is required');
|
||||
}
|
||||
// Parse and validate body using Zod
|
||||
const { activityPqqHeaderXid, activityPQQSuggestionId } = parseBody(event.body, updateSuggestionReviewedSchema);
|
||||
|
||||
await hostService.markPQQSuggestionReviewed(
|
||||
userInfo.id,
|
||||
|
||||
@@ -4,6 +4,8 @@ import { PrismaService } from '../../../../../common/database/prisma.service';
|
||||
import { HostService } from '../../../services/host.service';
|
||||
import ApiError from '../../../../../common/utils/helper/ApiError';
|
||||
import { verifyHostToken } from '@/common/middlewares/jwt/authForHost';
|
||||
import { parseBody } from '../../../../../common/utils/validation/validation.utils';
|
||||
import { createPasswordSchema } from '../../../../../common/utils/validation/host/auth.validation';
|
||||
|
||||
const prismaService = new PrismaService();
|
||||
const hostService = new HostService(prismaService);
|
||||
@@ -22,30 +24,8 @@ export const handler = safeHandler(async (
|
||||
const userInfo = await verifyHostToken(token);
|
||||
const user_xid = userInfo.id;
|
||||
|
||||
// Parse request body
|
||||
let body: { password?: string; confirmPassword?: string };
|
||||
|
||||
try {
|
||||
body = event.body ? JSON.parse(event.body) : {};
|
||||
} catch (error) {
|
||||
throw new ApiError(400, 'Invalid JSON in request body');
|
||||
}
|
||||
|
||||
const { password, confirmPassword } = body;
|
||||
|
||||
if (!password || !confirmPassword) {
|
||||
throw new ApiError(400, 'Password and confirm password are required');
|
||||
}
|
||||
|
||||
// Validate password match
|
||||
if (password !== confirmPassword) {
|
||||
throw new ApiError(400, 'Password and confirm password do not match');
|
||||
}
|
||||
|
||||
// Validate password length
|
||||
if (password.length < 8) {
|
||||
throw new ApiError(400, 'Password must be at least 8 characters long');
|
||||
}
|
||||
// Parse and validate request body using Zod
|
||||
const { password } = parseBody(event.body, createPasswordSchema);
|
||||
|
||||
await hostService.createPassword(user_xid, password);
|
||||
|
||||
|
||||
@@ -6,6 +6,8 @@ import { TokenService } from '../../../services/token.service';
|
||||
import { GetHostLoginResponseDTO } from '../../../dto/host.dto';
|
||||
import ApiError from '../../../../../common/utils/helper/ApiError';
|
||||
import * as bcrypt from 'bcryptjs';
|
||||
import { parseBody } from '../../../../../common/utils/validation/validation.utils';
|
||||
import { hostLoginSchema } from '../../../../../common/utils/validation/host/auth.validation';
|
||||
|
||||
const prismaService = new PrismaService();
|
||||
const hostService = new HostService(prismaService);
|
||||
@@ -15,20 +17,8 @@ export const handler = safeHandler(async (
|
||||
event: APIGatewayProxyEvent,
|
||||
context?: Context
|
||||
): Promise<APIGatewayProxyResult> => {
|
||||
// Parse request body
|
||||
let body: { emailAddress?: string; userPassword?: string };
|
||||
|
||||
try {
|
||||
body = event.body ? JSON.parse(event.body) : {};
|
||||
} catch (error) {
|
||||
throw new ApiError(400, 'Invalid JSON in request body');
|
||||
}
|
||||
|
||||
const { emailAddress, userPassword } = body;
|
||||
|
||||
if (!emailAddress || !userPassword) {
|
||||
throw new ApiError(400, 'Email and password are required');
|
||||
}
|
||||
// Parse and validate request body using Zod
|
||||
const { emailAddress, userPassword } = parseBody(event.body, hostLoginSchema);
|
||||
|
||||
const loginForHost = await hostService.loginForHost(emailAddress, userPassword);
|
||||
|
||||
|
||||
@@ -8,6 +8,8 @@ import { encryptUserId } from '../../../../../common/utils/helper/CodeGenerator'
|
||||
import { HostService } from '../../../services/host.service';
|
||||
import { sendOtpEmailForHost } from '../../../services/sendOTPEmail.service';
|
||||
import { ROLE } from '../../../../../common/utils/constants/common.constant';
|
||||
import { parseBody } from '../../../../../common/utils/validation/validation.utils';
|
||||
import { hostSignUpSchema } from '../../../../../common/utils/validation/host/auth.validation';
|
||||
|
||||
const prismaService = new PrismaService();
|
||||
const hostService = new HostService(prismaService);
|
||||
@@ -31,20 +33,8 @@ export const handler = safeHandler(async (
|
||||
event: APIGatewayProxyEvent,
|
||||
context?: Context
|
||||
): Promise<APIGatewayProxyResult> => {
|
||||
// Parse request body
|
||||
let body: { email?: string };
|
||||
|
||||
try {
|
||||
body = event.body ? JSON.parse(event.body) : {};
|
||||
} catch (error) {
|
||||
throw new ApiError(400, 'Invalid JSON in request body');
|
||||
}
|
||||
|
||||
const { email } = body;
|
||||
|
||||
if (!email) {
|
||||
throw new ApiError(400, 'Email is required');
|
||||
}
|
||||
// Parse and validate request body using Zod
|
||||
const { email } = parseBody(event.body, hostSignUpSchema);
|
||||
|
||||
// Use a single transaction for user creation/lookup and OTP storage
|
||||
const transactionResult = await prismaService.$transaction(async (tx) => {
|
||||
|
||||
@@ -2,8 +2,9 @@ import { APIGatewayProxyEvent, APIGatewayProxyResult, Context } from 'aws-lambda
|
||||
import { safeHandler } from '../../../../../common/utils/handlers/safeHandler';
|
||||
import { PrismaService } from '../../../../../common/database/prisma.service';
|
||||
import { HostService } from '../../../services/host.service';
|
||||
import ApiError from '../../../../../common/utils/helper/ApiError';
|
||||
import { TokenService } from '../../../services/token.service';
|
||||
import { parseBody } from '../../../../../common/utils/validation/validation.utils';
|
||||
import { verifyOtpWithEmailSchema } from '../../../../../common/utils/validation/host/auth.validation';
|
||||
|
||||
const prismaService = new PrismaService();
|
||||
const hostService = new HostService(prismaService);
|
||||
@@ -13,20 +14,8 @@ export const handler = safeHandler(async (
|
||||
event: APIGatewayProxyEvent,
|
||||
context?: Context
|
||||
): Promise<APIGatewayProxyResult> => {
|
||||
// Parse request body
|
||||
let body: { email?: string; otp?: string };
|
||||
|
||||
try {
|
||||
body = event.body ? JSON.parse(event.body) : {};
|
||||
} catch (error) {
|
||||
throw new ApiError(400, 'Invalid JSON in request body');
|
||||
}
|
||||
|
||||
const { email, otp } = body;
|
||||
|
||||
if (!email || !otp) {
|
||||
throw new ApiError(400, 'Email and OTP are required');
|
||||
}
|
||||
// Parse and validate request body using Zod
|
||||
const { email, otp } = parseBody(event.body, verifyOtpWithEmailSchema);
|
||||
|
||||
await hostService.verifyHostOtp(email, otp);
|
||||
const user = await hostService.getHostByEmail(email);
|
||||
|
||||
@@ -10,8 +10,8 @@ export const handler = safeHandler(async (
|
||||
|
||||
const result = await prisma.hostHeader.findMany({
|
||||
select: {
|
||||
id: true,
|
||||
hostParent: true,
|
||||
hostRefNumber: true,
|
||||
hostStatusDisplay: true,
|
||||
accountManager: true,
|
||||
},
|
||||
|
||||
@@ -4,6 +4,8 @@ import { safeHandler } from "../../../common/utils/handlers/safeHandler";
|
||||
import ApiError from "../../../common/utils/helper/ApiError";
|
||||
import { resendOtpHelper } from "../../../common/utils/helper/resendOtpHelper";
|
||||
import { resendOtpEmail } from "../services/resendOTPEmail.service";
|
||||
import { parseBody } from "../../../common/utils/validation/validation.utils";
|
||||
import { resendOtpSchema } from "../../../common/utils/validation/host/auth.validation";
|
||||
|
||||
const prisma = new PrismaService();
|
||||
|
||||
@@ -13,33 +15,12 @@ type OtpPurpose = typeof ALLOWED_PURPOSES[number];
|
||||
|
||||
export const handler = safeHandler(
|
||||
async (event: APIGatewayProxyEvent): Promise<APIGatewayProxyResult> => {
|
||||
// parse body safely
|
||||
let body: { email?: string; purpose?: string } = {};
|
||||
try {
|
||||
body = event.body ? JSON.parse(event.body) : {};
|
||||
} catch {
|
||||
throw new ApiError(400, "Invalid JSON in request body");
|
||||
}
|
||||
// Parse and validate body using Zod
|
||||
const { email, purpose: purposeFromBody } = parseBody(event.body, resendOtpSchema);
|
||||
|
||||
// allow passing purpose via query string too (useful for GET requests)
|
||||
const qsPurpose = event.queryStringParameters?.purpose;
|
||||
const purposeRaw = (body.purpose || qsPurpose || "").trim();
|
||||
|
||||
if (!purposeRaw) {
|
||||
throw new ApiError(400, "purpose is required. Allowed values: Register, Login, ForgotPassword");
|
||||
}
|
||||
|
||||
if (!ALLOWED_PURPOSES.includes(purposeRaw as OtpPurpose)) {
|
||||
throw new ApiError(
|
||||
400,
|
||||
`Invalid purpose '${purposeRaw}'. Allowed values: ${ALLOWED_PURPOSES.join(", ")}`
|
||||
);
|
||||
}
|
||||
|
||||
const purpose = purposeRaw as OtpPurpose;
|
||||
|
||||
const email = (body.email || "").trim();
|
||||
if (!email) throw new ApiError(400, "Email is required");
|
||||
const purpose = (purposeFromBody || qsPurpose || "Register") as OtpPurpose;
|
||||
|
||||
// find user (you can adapt the isActive / userStatus checks per your rules)
|
||||
const user = await prisma.user.findUnique({
|
||||
|
||||
@@ -2,9 +2,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 { verifyHostToken } from '../../../common/middlewares/jwt/authForHost';
|
||||
import { verifyMinglarAdminToken } from '@/common/middlewares/jwt/authForMinglarAdmin';
|
||||
import { parseBody } from '../../../common/utils/validation/validation.utils';
|
||||
import { minglarCreatePasswordSchema } from '../../../common/utils/validation/minglaradmin/auth.validation';
|
||||
|
||||
const prismaService = new PrismaService();
|
||||
const minglarService = new MinglarService(prismaService);
|
||||
@@ -16,37 +16,15 @@ export const handler = safeHandler(async (
|
||||
// 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.');
|
||||
throw new (await import('../../../common/utils/helper/ApiError')).default(400, 'This is a protected route. Please provide a valid token.');
|
||||
}
|
||||
|
||||
// Authenticate user using the shared authForHost function
|
||||
const userInfo = await verifyMinglarAdminToken(token);
|
||||
const user_xid = userInfo.id;
|
||||
|
||||
// Parse request body
|
||||
let body: { password?: string; confirmPassword?: string };
|
||||
|
||||
try {
|
||||
body = event.body ? JSON.parse(event.body) : {};
|
||||
} catch (error) {
|
||||
throw new ApiError(400, 'Invalid JSON in request body');
|
||||
}
|
||||
|
||||
const { password, confirmPassword } = body;
|
||||
|
||||
if (!password || !confirmPassword) {
|
||||
throw new ApiError(400, 'Password and confirm password are required');
|
||||
}
|
||||
|
||||
// Validate password match
|
||||
if (password !== confirmPassword) {
|
||||
throw new ApiError(400, 'Password and confirm password do not match');
|
||||
}
|
||||
|
||||
// Validate password length
|
||||
if (password.length < 8) {
|
||||
throw new ApiError(400, 'Password must be at least 8 characters long');
|
||||
}
|
||||
// Parse and validate request body using Zod
|
||||
const { password } = parseBody(event.body, minglarCreatePasswordSchema);
|
||||
|
||||
await minglarService.createPassword(user_xid, password);
|
||||
const userDetails = await minglarService.getBasicUserDetails(user_xid)
|
||||
|
||||
@@ -8,13 +8,14 @@ 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 all host applications handler
|
||||
* Returns host details with status, submission date, and account manager info
|
||||
* Get AM details by ID handler
|
||||
*/
|
||||
export const handler = safeHandler(
|
||||
async (
|
||||
@@ -33,22 +34,12 @@ export const handler = safeHandler(
|
||||
|
||||
await verifyMinglarAdminToken(token);
|
||||
|
||||
const amXid = event.pathParameters?.amXid;
|
||||
if (!amXid) {
|
||||
throw new ApiError(
|
||||
400,
|
||||
'Account Manager XID is required in path parameters.',
|
||||
);
|
||||
}
|
||||
|
||||
const amId = Number(amXid);
|
||||
if (Number.isNaN(amId)) {
|
||||
throw new ApiError(400, 'Account Manager XID must be a valid number.');
|
||||
}
|
||||
// Parse and validate path params using Zod
|
||||
const { amXid } = parseQueryParams(event.pathParameters, getAmDetailByIdPathSchema);
|
||||
|
||||
|
||||
// Get all host applications from service based on user role
|
||||
const getAmDetailsByid = await minglarService.getAMdetailById( amId );
|
||||
// Get AM details by ID from service
|
||||
const getAmDetailsByid = await minglarService.getAMdetailById(amXid);
|
||||
|
||||
return {
|
||||
statusCode: 200,
|
||||
|
||||
@@ -5,20 +5,14 @@ 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 { parseBody } from '../../../../../common/utils/validation/validation.utils';
|
||||
import { hostApplicationActionSchema } from '../../../../../common/utils/validation/minglaradmin/hosthub.validation';
|
||||
|
||||
const prismaService = new PrismaService();
|
||||
const minglarService = new MinglarService(prismaService);
|
||||
|
||||
interface AddSuggestionBody {
|
||||
hostXid: number;
|
||||
title: string;
|
||||
comments: string;
|
||||
}
|
||||
|
||||
/**
|
||||
* Add suggestion handler for host applications
|
||||
* Allows Minglar Admin, Co_Admin, and Account Manager to add suggestions
|
||||
* Types: Setup Profile, Review Account, Add Payment Details, Agreement
|
||||
* Accept host application handler
|
||||
*/
|
||||
export const handler = safeHandler(async (
|
||||
event: APIGatewayProxyEvent,
|
||||
@@ -33,16 +27,8 @@ export const handler = safeHandler(async (
|
||||
// Verify token and get user info
|
||||
const userInfo = await verifyMinglarAdminToken(token);
|
||||
|
||||
// Parse request body
|
||||
let body: AddSuggestionBody;
|
||||
|
||||
try {
|
||||
body = event.body ? JSON.parse(event.body) : {};
|
||||
} catch (error) {
|
||||
throw new ApiError(400, 'Invalid JSON in request body');
|
||||
}
|
||||
|
||||
const { hostXid } = body;
|
||||
// Parse and validate request body using Zod
|
||||
const { hostXid } = parseBody(event.body, hostApplicationActionSchema);
|
||||
|
||||
|
||||
// Add suggestion using service
|
||||
|
||||
@@ -5,16 +5,12 @@ 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 { parseBody } from '../../../../../common/utils/validation/validation.utils';
|
||||
import { addPqqSuggestionSchema } from '../../../../../common/utils/validation/minglaradmin/hosthub.validation';
|
||||
|
||||
const prismaService = new PrismaService();
|
||||
const minglarService = new MinglarService(prismaService);
|
||||
|
||||
interface AddSuggestionBody {
|
||||
title: string;
|
||||
comments: string;
|
||||
activity_pqq_header_xid:number
|
||||
}
|
||||
|
||||
/**
|
||||
* Add suggestion handler for host applications
|
||||
* Allows Minglar Admin, Co_Admin, and Account Manager to add suggestions
|
||||
@@ -43,28 +39,8 @@ export const handler = safeHandler(async (
|
||||
throw new ApiError(404, 'User not found');
|
||||
}
|
||||
|
||||
// Parse request body
|
||||
let body: AddSuggestionBody;
|
||||
|
||||
try {
|
||||
body = event.body ? JSON.parse(event.body) : {};
|
||||
} catch (error) {
|
||||
throw new ApiError(400, 'Invalid JSON in request body');
|
||||
}
|
||||
|
||||
const { title, comments , activity_pqq_header_xid} = body;
|
||||
|
||||
if (!title) {
|
||||
throw new ApiError(400, 'Title is required');
|
||||
}
|
||||
|
||||
if (!comments) {
|
||||
throw new ApiError(400, 'Comments are required');
|
||||
}
|
||||
|
||||
if(!activity_pqq_header_xid){
|
||||
throw new ApiError(400 , "Activity Pqq HeaderXid Required");
|
||||
}
|
||||
// Parse and validate request body using Zod
|
||||
const { title, comments, activity_pqq_header_xid } = parseBody(event.body, addPqqSuggestionSchema);
|
||||
|
||||
// Validate title is one of the allowed types
|
||||
const allowedTitles = Object.values(HOST_SUGGESTION_TITLES);
|
||||
|
||||
@@ -5,16 +5,12 @@ 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 { parseBody } from '../../../../../common/utils/validation/validation.utils';
|
||||
import { addHostSuggestionSchema } from '../../../../../common/utils/validation/minglaradmin/hosthub.validation';
|
||||
|
||||
const prismaService = new PrismaService();
|
||||
const minglarService = new MinglarService(prismaService);
|
||||
|
||||
interface AddSuggestionBody {
|
||||
hostXid: number;
|
||||
title: string;
|
||||
comments: string;
|
||||
}
|
||||
|
||||
/**
|
||||
* Add suggestion handler for host applications
|
||||
* Allows Minglar Admin, Co_Admin, and Account Manager to add suggestions
|
||||
@@ -43,29 +39,8 @@ export const handler = safeHandler(async (
|
||||
throw new ApiError(404, 'User not found');
|
||||
}
|
||||
|
||||
// Parse request body
|
||||
let body: AddSuggestionBody;
|
||||
|
||||
try {
|
||||
body = event.body ? JSON.parse(event.body) : {};
|
||||
} catch (error) {
|
||||
throw new ApiError(400, 'Invalid JSON in request body');
|
||||
}
|
||||
|
||||
const { hostXid, title, comments } = body;
|
||||
|
||||
// Validate required fields
|
||||
if (!hostXid) {
|
||||
throw new ApiError(400, 'Host ID is required');
|
||||
}
|
||||
|
||||
if (!title) {
|
||||
throw new ApiError(400, 'Title is required');
|
||||
}
|
||||
|
||||
if (!comments) {
|
||||
throw new ApiError(400, 'Comments are required');
|
||||
}
|
||||
// Parse and validate request body using Zod
|
||||
const { hostXid, title, comments } = parseBody(event.body, addHostSuggestionSchema);
|
||||
|
||||
// Validate title is one of the allowed types
|
||||
const allowedTitles = Object.values(HOST_SUGGESTION_TITLES);
|
||||
|
||||
@@ -5,6 +5,8 @@ import { MinglarService } from '../../../services/minglar.service';
|
||||
import ApiError from '../../../../../common/utils/helper/ApiError';
|
||||
import { verifyMinglarAdminToken } from '../../../../../common/middlewares/jwt/authForMinglarAdmin';
|
||||
import { paginationService } from '../../../../../common/utils/pagination/pagination.service';
|
||||
import { parseQueryParams } from '../../../../../common/utils/validation/validation.utils';
|
||||
import { getAllHostApplicationsQuerySchema } from '../../../../../common/utils/validation/minglaradmin/hosthub.validation';
|
||||
|
||||
const prismaService = new PrismaService();
|
||||
const minglarService = new MinglarService(prismaService);
|
||||
@@ -35,10 +37,11 @@ export const handler = safeHandler(async (
|
||||
throw new ApiError(404, 'User not found');
|
||||
}
|
||||
|
||||
// Get query parameters
|
||||
const search = event.queryStringParameters?.search || '';
|
||||
const userStatus = event.queryStringParameters?.userStatus || '';
|
||||
const roleFilter = event.queryStringParameters?.roleFilter || '';
|
||||
// Parse and validate query params using Zod
|
||||
const { search, userStatus, roleFilter } = parseQueryParams(
|
||||
event.queryStringParameters,
|
||||
getAllHostApplicationsQuerySchema
|
||||
);
|
||||
|
||||
// Parse pagination parameters
|
||||
const paginationParams = paginationService.getPaginationFromEvent(event);
|
||||
|
||||
@@ -5,6 +5,8 @@ import { PrismaService } from '@/common/database/prisma.service';
|
||||
import { safeHandler } from '@/common/utils/handlers/safeHandler';
|
||||
import ApiError from '@/common/utils/helper/ApiError';
|
||||
import { verifyMinglarAdminToken } from '@/common/middlewares/jwt/authForMinglarAdmin';
|
||||
import { parseQueryParams } from '@/common/utils/validation/validation.utils';
|
||||
import { getHostByIdPathSchema } from '@/common/utils/validation/minglaradmin/hosthub.validation';
|
||||
|
||||
const prismaService = new PrismaService();
|
||||
const minglarService = new MinglarService(prismaService);
|
||||
@@ -21,13 +23,8 @@ export const handler = safeHandler(async (
|
||||
|
||||
await verifyMinglarAdminToken(token);
|
||||
|
||||
const host_xid = event.pathParameters?.host_xid;
|
||||
if (!host_xid) {
|
||||
throw new ApiError(
|
||||
400,
|
||||
'Host ID is required in path parameters.',
|
||||
);
|
||||
}
|
||||
// Parse and validate path params using Zod
|
||||
const { host_xid } = parseQueryParams(event.pathParameters, getHostByIdPathSchema);
|
||||
|
||||
|
||||
const hostDetails = await minglarService.getHostDetailsById(Number(host_xid));
|
||||
|
||||
@@ -5,20 +5,14 @@ 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 { parseBody } from '../../../../../common/utils/validation/validation.utils';
|
||||
import { hostApplicationActionSchema } from '../../../../../common/utils/validation/minglaradmin/hosthub.validation';
|
||||
|
||||
const prismaService = new PrismaService();
|
||||
const minglarService = new MinglarService(prismaService);
|
||||
|
||||
interface AddSuggestionBody {
|
||||
hostXid: number;
|
||||
title: string;
|
||||
comments: string;
|
||||
}
|
||||
|
||||
/**
|
||||
* Add suggestion handler for host applications
|
||||
* Allows Minglar Admin, Co_Admin, and Account Manager to add suggestions
|
||||
* Types: Setup Profile, Review Account, Add Payment Details, Agreement
|
||||
* Reject host application handler for Account Managers
|
||||
*/
|
||||
export const handler = safeHandler(async (
|
||||
event: APIGatewayProxyEvent,
|
||||
@@ -33,16 +27,8 @@ export const handler = safeHandler(async (
|
||||
// Verify token and get user info
|
||||
const userInfo = await verifyMinglarAdminToken(token);
|
||||
|
||||
// Parse request body
|
||||
let body: AddSuggestionBody;
|
||||
|
||||
try {
|
||||
body = event.body ? JSON.parse(event.body) : {};
|
||||
} catch (error) {
|
||||
throw new ApiError(400, 'Invalid JSON in request body');
|
||||
}
|
||||
|
||||
const { hostXid } = body;
|
||||
// Parse and validate request body using Zod
|
||||
const { hostXid } = parseBody(event.body, hostApplicationActionSchema);
|
||||
|
||||
|
||||
// Add suggestion using service
|
||||
|
||||
@@ -4,6 +4,8 @@ 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 { parseBody } from '../../../../../common/utils/validation/validation.utils';
|
||||
import { rejectPqqByAmSchema } from '../../../../../common/utils/validation/minglaradmin/hosthub.validation';
|
||||
|
||||
const prismaService = new PrismaService();
|
||||
const minglarService = new MinglarService(prismaService);
|
||||
@@ -17,22 +19,10 @@ export const handler = safeHandler(async (
|
||||
|
||||
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');
|
||||
}
|
||||
// Parse and validate body using Zod
|
||||
const { activityId } = parseBody(event.body, rejectPqqByAmSchema);
|
||||
|
||||
const { activityId } = body;
|
||||
|
||||
if (!activityId) {
|
||||
throw new ApiError(400, 'activityId is required');
|
||||
}
|
||||
|
||||
await minglarService.rejectPQQbyAM(
|
||||
Number(activityId),
|
||||
);
|
||||
await minglarService.rejectPQQbyAM(activityId);
|
||||
|
||||
return {
|
||||
statusCode: 201,
|
||||
|
||||
@@ -5,20 +5,14 @@ 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 { parseBody } from '../../../../../common/utils/validation/validation.utils';
|
||||
import { hostApplicationActionSchema } from '../../../../../common/utils/validation/minglaradmin/hosthub.validation';
|
||||
|
||||
const prismaService = new PrismaService();
|
||||
const minglarService = new MinglarService(prismaService);
|
||||
|
||||
interface AddSuggestionBody {
|
||||
hostXid: number;
|
||||
title: string;
|
||||
comments: string;
|
||||
}
|
||||
|
||||
/**
|
||||
* Add suggestion handler for host applications
|
||||
* Allows Minglar Admin, Co_Admin, and Account Manager to add suggestions
|
||||
* Types: Setup Profile, Review Account, Add Payment Details, Agreement
|
||||
* Accept host application handler for Minglar Admin
|
||||
*/
|
||||
export const handler = safeHandler(async (
|
||||
event: APIGatewayProxyEvent,
|
||||
@@ -33,16 +27,8 @@ export const handler = safeHandler(async (
|
||||
// Verify token and get user info
|
||||
const userInfo = await verifyOnlyMinglarAdminToken(token);
|
||||
|
||||
// Parse request body
|
||||
let body: AddSuggestionBody;
|
||||
|
||||
try {
|
||||
body = event.body ? JSON.parse(event.body) : {};
|
||||
} catch (error) {
|
||||
throw new ApiError(400, 'Invalid JSON in request body');
|
||||
}
|
||||
|
||||
const { hostXid } = body;
|
||||
// Parse and validate request body using Zod
|
||||
const { hostXid } = parseBody(event.body, hostApplicationActionSchema);
|
||||
|
||||
|
||||
// Add suggestion using service
|
||||
|
||||
@@ -9,15 +9,12 @@ 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';
|
||||
import { parseBody } from '../../../../../common/utils/validation/validation.utils';
|
||||
import { assignAmToHostSchema } from '../../../../../common/utils/validation/minglaradmin/hosthub.validation';
|
||||
|
||||
const prismaService = new PrismaService();
|
||||
const minglarService = new MinglarService(prismaService);
|
||||
|
||||
interface assignAMToHostBody {
|
||||
host_xid: number;
|
||||
account_manager_xid: number;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get all host applications handler
|
||||
* Returns host details with status, submission date, and account manager info
|
||||
@@ -50,16 +47,11 @@ export const handler = safeHandler(
|
||||
throw new ApiError(404, 'User not found');
|
||||
}
|
||||
|
||||
// Parse request body
|
||||
let body: assignAMToHostBody;
|
||||
|
||||
try {
|
||||
body = event.body ? JSON.parse(event.body) : {};
|
||||
} catch (error) {
|
||||
throw new ApiError(400, 'Invalid JSON in request body');
|
||||
}
|
||||
|
||||
const { host_xid, account_manager_xid } = body;
|
||||
// Parse and validate request body using Zod
|
||||
const { hostXid: host_xid, accountManagerXid: account_manager_xid } = parseBody(
|
||||
event.body,
|
||||
assignAmToHostSchema
|
||||
);
|
||||
|
||||
// Get all host applications from service based on user role
|
||||
await minglarService.assignAMToHost(user.id, host_xid, account_manager_xid);
|
||||
|
||||
@@ -4,22 +4,12 @@ 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 { parseBody } from '../../../../../common/utils/validation/validation.utils';
|
||||
import { editAgreementDetailsSchema } from '../../../../../common/utils/validation/minglaradmin/hosthub.validation';
|
||||
|
||||
const prismaService = new PrismaService();
|
||||
const minglarService = new MinglarService(prismaService);
|
||||
|
||||
interface assignAMToHostBody {
|
||||
host_xid: number,
|
||||
agreementStartDate: string,
|
||||
duration: number,
|
||||
isCommisionBase: boolean,
|
||||
commisionPer: number,
|
||||
amountPerBooking: number,
|
||||
durationFrequency: string,
|
||||
payoutDurationNum: number,
|
||||
payoutDurationFrequency: string
|
||||
}
|
||||
|
||||
export const handler = safeHandler(async (
|
||||
event: APIGatewayProxyEvent,
|
||||
context?: Context
|
||||
@@ -43,15 +33,7 @@ export const handler = safeHandler(async (
|
||||
throw new ApiError(404, 'User not found');
|
||||
}
|
||||
|
||||
// Parse request body
|
||||
let body: assignAMToHostBody;
|
||||
|
||||
try {
|
||||
body = event.body ? JSON.parse(event.body) : {};
|
||||
} catch (error) {
|
||||
throw new ApiError(400, 'Invalid JSON in request body');
|
||||
}
|
||||
|
||||
// Parse and validate request body using Zod
|
||||
const {
|
||||
host_xid,
|
||||
agreementStartDate,
|
||||
@@ -62,7 +44,7 @@ export const handler = safeHandler(async (
|
||||
durationFrequency,
|
||||
payoutDurationNum,
|
||||
payoutDurationFrequency
|
||||
} = body;
|
||||
} = parseBody(event.body, editAgreementDetailsSchema);
|
||||
|
||||
await minglarService.editAgreementDetails(
|
||||
host_xid,
|
||||
|
||||
@@ -5,15 +5,16 @@ import { safeHandler } from '../../../../../common/utils/handlers/safeHandler';
|
||||
import ApiError from '../../../../../common/utils/helper/ApiError';
|
||||
import { PrePopulateService } from '../../../../prepopulate/services/prepopulate.service';
|
||||
import { MinglarService } from '../../../services/minglar.service';
|
||||
import { parseQueryParams } from '../../../../../common/utils/validation/validation.utils';
|
||||
import { getHostByIdAltPathSchema } from '../../../../../common/utils/validation/minglaradmin/hosthub.validation';
|
||||
import { optionalSearchQuerySchema } from '../../../../../common/utils/validation/host/activity.validation';
|
||||
|
||||
const prismaService = new PrismaService();
|
||||
const minglarService = new MinglarService(prismaService);
|
||||
const prePopulateService = new PrePopulateService(prismaService);
|
||||
|
||||
/**
|
||||
* Add suggestion handler for host applications
|
||||
* Allows Minglar Admin, Co_Admin, and Account Manager to add suggestions
|
||||
* Types: Setup Profile, Review Account, Add Payment Details, Agreement
|
||||
* Get all activities of a host handler
|
||||
*/
|
||||
export const handler = safeHandler(async (
|
||||
event: APIGatewayProxyEvent,
|
||||
@@ -28,13 +29,14 @@ export const handler = safeHandler(async (
|
||||
// Verify token and get user info
|
||||
const userInfo = await verifyMinglarAdminToken(token);
|
||||
|
||||
const hostXid = Number(event.pathParameters?.id)
|
||||
// Parse and validate path params using Zod
|
||||
const { id: hostXid } = parseQueryParams(event.pathParameters, getHostByIdAltPathSchema);
|
||||
|
||||
// Parse and validate query params using Zod
|
||||
const { search, q } = parseQueryParams(event.queryStringParameters, optionalSearchQuerySchema);
|
||||
const searchTerm = search || q || undefined;
|
||||
|
||||
// Read optional search query (supports ?search= or ?q=)
|
||||
const search = event.queryStringParameters?.search || event.queryStringParameters?.q || undefined;
|
||||
|
||||
const data = await minglarService.getAllHostActivityForMinglar(search ? String(search) : undefined, hostXid);
|
||||
const data = await minglarService.getAllHostActivityForMinglar(searchTerm, hostXid);
|
||||
|
||||
|
||||
return {
|
||||
|
||||
@@ -5,20 +5,14 @@ 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 { parseBody } from '../../../../../common/utils/validation/validation.utils';
|
||||
import { hostApplicationActionSchema } from '../../../../../common/utils/validation/minglaradmin/hosthub.validation';
|
||||
|
||||
const prismaService = new PrismaService();
|
||||
const minglarService = new MinglarService(prismaService);
|
||||
|
||||
interface AddSuggestionBody {
|
||||
hostXid: number;
|
||||
title: string;
|
||||
comments: string;
|
||||
}
|
||||
|
||||
/**
|
||||
* Add suggestion handler for host applications
|
||||
* Allows Minglar Admin, Co_Admin, and Account Manager to add suggestions
|
||||
* Types: Setup Profile, Review Account, Add Payment Details, Agreement
|
||||
* Reject host application handler for Minglar Admin
|
||||
*/
|
||||
export const handler = safeHandler(async (
|
||||
event: APIGatewayProxyEvent,
|
||||
@@ -33,16 +27,8 @@ export const handler = safeHandler(async (
|
||||
// Verify token and get user info
|
||||
const userInfo = await verifyOnlyMinglarAdminToken(token);
|
||||
|
||||
// Parse request body
|
||||
let body: AddSuggestionBody;
|
||||
|
||||
try {
|
||||
body = event.body ? JSON.parse(event.body) : {};
|
||||
} catch (error) {
|
||||
throw new ApiError(400, 'Invalid JSON in request body');
|
||||
}
|
||||
|
||||
const { hostXid } = body;
|
||||
// Parse and validate request body using Zod
|
||||
const { hostXid } = parseBody(event.body, hostApplicationActionSchema);
|
||||
|
||||
|
||||
// Add suggestion using service
|
||||
|
||||
@@ -5,6 +5,8 @@ import ApiError from '../../../common/utils/helper/ApiError';
|
||||
import { GetMinglarLoginResponseDTO } from '../dto/minglar.dto';
|
||||
import { MinglarService } from '../services/minglar.service';
|
||||
import { TokenService } from "../services/token.service";
|
||||
import { parseBody } from '../../../common/utils/validation/validation.utils';
|
||||
import { minglarLoginSchema } from '../../../common/utils/validation/minglaradmin/auth.validation';
|
||||
|
||||
const prismaService = new PrismaService();
|
||||
const minglarSerivce = new MinglarService(prismaService);
|
||||
@@ -14,22 +16,10 @@ export const handler = safeHandler(async (
|
||||
event: APIGatewayProxyEvent,
|
||||
context?: Context
|
||||
): Promise<APIGatewayProxyResult> => {
|
||||
// Parse request body
|
||||
let body: { emailAddress?: string; userPassword?: string };
|
||||
|
||||
try {
|
||||
body = event.body ? JSON.parse(event.body) : {};
|
||||
} catch (error) {
|
||||
throw new ApiError(400, 'Invalid JSON in request body');
|
||||
}
|
||||
// Parse and validate request body using Zod
|
||||
const { emailAddress, userPassword } = parseBody(event.body, minglarLoginSchema);
|
||||
|
||||
const { emailAddress ,userPassword} = body;
|
||||
|
||||
if (!emailAddress) {
|
||||
throw new ApiError(400, 'Email is required');
|
||||
}
|
||||
|
||||
const loginForMinglar = await minglarSerivce.loginForMinglar(emailAddress ,userPassword);
|
||||
const loginForMinglar = await minglarSerivce.loginForMinglar(emailAddress, userPassword);
|
||||
|
||||
if (!loginForMinglar) {
|
||||
throw new ApiError(400, 'Failed to login');
|
||||
|
||||
@@ -6,6 +6,8 @@ import ApiError from '../../../common/utils/helper/ApiError';
|
||||
import { generateOtpHelper } from '../../../common/utils/helper/sendOtp';
|
||||
import { sendOtpEmailForMinglarAdmin } from '../services/sendOTPEmail.service';
|
||||
import { MinglarService } from './../services/minglar.service';
|
||||
import { parseBody } from '../../../common/utils/validation/validation.utils';
|
||||
import { minglarRegistrationSchema } from '../../../common/utils/validation/minglaradmin/auth.validation';
|
||||
|
||||
const prismaService = new PrismaService();
|
||||
const minglarService = new MinglarService(prismaService);
|
||||
@@ -14,20 +16,8 @@ export const handler = safeHandler(async (
|
||||
event: APIGatewayProxyEvent,
|
||||
context?: Context
|
||||
): Promise<APIGatewayProxyResult> => {
|
||||
// Parse request body
|
||||
let body: { email?: string };
|
||||
|
||||
try {
|
||||
body = event.body ? JSON.parse(event.body) : {};
|
||||
} catch (error) {
|
||||
throw new ApiError(400, 'Invalid JSON in request body');
|
||||
}
|
||||
|
||||
const { email } = body;
|
||||
|
||||
if (!email) {
|
||||
throw new ApiError(400, 'Email is required');
|
||||
}
|
||||
// Parse and validate request body using Zod
|
||||
const { email } = parseBody(event.body, minglarRegistrationSchema);
|
||||
|
||||
const user = await prismaService.user.findUnique({
|
||||
where: { emailAddress: email, isActive: true, userStatus: USER_STATUS.INVITED },
|
||||
|
||||
@@ -4,6 +4,8 @@ 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 { parseQueryParams } from '../../../../../common/utils/validation/validation.utils';
|
||||
import { getAllCoadminAndAMQuerySchema } from '../../../../../common/utils/validation/minglaradmin/teammate.validation';
|
||||
|
||||
const prismaService = new PrismaService();
|
||||
const minglarService = new MinglarService(prismaService);
|
||||
@@ -21,8 +23,8 @@ export const handler = safeHandler(async (
|
||||
// Authenticate user using the shared authForHost function
|
||||
await verifyOnlyMinglarAdminToken(token);
|
||||
|
||||
// Extract search parameter from query string
|
||||
const search = event.queryStringParameters?.search || '';
|
||||
// Parse and validate query params using Zod
|
||||
const { search } = parseQueryParams(event.queryStringParameters, getAllCoadminAndAMQuerySchema);
|
||||
|
||||
const response = await minglarService.getAllCoadminAndAM(search);
|
||||
|
||||
|
||||
@@ -4,6 +4,8 @@ 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 { parseQueryParams } from '../../../../../common/utils/validation/validation.utils';
|
||||
import { getInvitationDetailsQuerySchema } from '../../../../../common/utils/validation/minglaradmin/teammate.validation';
|
||||
|
||||
const prismaService = new PrismaService();
|
||||
const minglarService = new MinglarService(prismaService);
|
||||
@@ -21,8 +23,8 @@ export const handler = safeHandler(async (
|
||||
// Authenticate user using the shared authForHost function
|
||||
await verifyOnlyMinglarAdminToken(token);
|
||||
|
||||
// Extract search parameter from query string
|
||||
const search = event.queryStringParameters?.search || '';
|
||||
// Parse and validate query params using Zod
|
||||
const { search } = parseQueryParams(event.queryStringParameters, getInvitationDetailsQuerySchema);
|
||||
|
||||
const result = await minglarService.getAllInvitationDetails(search);
|
||||
|
||||
|
||||
@@ -4,6 +4,8 @@ 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 { parseQueryParams } from '../../../../../common/utils/validation/validation.utils';
|
||||
import { getAllInvitedCoadminAndAMQuerySchema } from '../../../../../common/utils/validation/minglaradmin/teammate.validation';
|
||||
|
||||
const prismaService = new PrismaService();
|
||||
const minglarService = new MinglarService(prismaService);
|
||||
@@ -21,8 +23,8 @@ export const handler = safeHandler(async (
|
||||
// Authenticate user using the shared authForHost function
|
||||
await verifyOnlyMinglarAdminToken(token);
|
||||
|
||||
// Extract search parameter from query string
|
||||
const search = event.queryStringParameters?.search || '';
|
||||
// Parse and validate query params using Zod
|
||||
const { search } = parseQueryParams(event.queryStringParameters, getAllInvitedCoadminAndAMQuerySchema);
|
||||
|
||||
const response = await minglarService.getAllInvitedCoadminAndAM(search);
|
||||
|
||||
|
||||
@@ -1,23 +1,16 @@
|
||||
import { verifyOnlyMinglarAdminToken } from '@/common/middlewares/jwt/authForOnlyMinglarAdmin';
|
||||
import { MINGLAR_INVITATION_STATUS } from '@/common/utils/constants/minglar.constant';
|
||||
import { APIGatewayProxyEvent, APIGatewayProxyResult, Context } from 'aws-lambda';
|
||||
import { PrismaService } from '../../../../../common/database/prisma.service';
|
||||
import { ROLE } from '../../../../../common/utils/constants/common.constant';
|
||||
import { safeHandler } from '../../../../../common/utils/handlers/safeHandler';
|
||||
import ApiError from '../../../../../common/utils/helper/ApiError';
|
||||
import { sendInvitationEmailForMinglarAdmin } from '../../../services/inviteTeammatesEmail.service';
|
||||
import { MinglarService } from '../../../services/minglar.service';
|
||||
import { parseBody } from '../../../../../common/utils/validation/validation.utils';
|
||||
import { inviteTeammateSchema } from '../../../../../common/utils/validation/minglaradmin/teammate.validation';
|
||||
|
||||
const prismaService = new PrismaService();
|
||||
const minglarService = new MinglarService(prismaService);
|
||||
|
||||
interface InviteTeammateBody {
|
||||
emailAddress: string;
|
||||
roleXid: number;
|
||||
isFixedSalary: boolean;
|
||||
perValue?: number;
|
||||
}
|
||||
|
||||
/**
|
||||
* Invite teammate handler
|
||||
* Only accessible by MINGLAR_ADMIN (role_xid = 1)
|
||||
@@ -37,46 +30,13 @@ export const handler = safeHandler(async (
|
||||
// Verify token and get user info
|
||||
const userInfo = await verifyOnlyMinglarAdminToken(token);
|
||||
|
||||
// Parse request body
|
||||
let body: InviteTeammateBody;
|
||||
|
||||
try {
|
||||
body = event.body ? JSON.parse(event.body) : {};
|
||||
} catch (error) {
|
||||
throw new ApiError(400, 'Invalid JSON in request body');
|
||||
}
|
||||
|
||||
// Parse and validate request body using Zod
|
||||
const {
|
||||
emailAddress,
|
||||
roleXid,
|
||||
isFixedSalary,
|
||||
perValue
|
||||
} = body;
|
||||
|
||||
// Validate required fields
|
||||
if (!emailAddress) {
|
||||
throw new ApiError(400, 'Email address is required');
|
||||
}
|
||||
|
||||
if (!roleXid) {
|
||||
throw new ApiError(400, 'Role is required');
|
||||
}
|
||||
|
||||
// Validate role is either Co_Admin or Account_Manager
|
||||
if (![ROLE.CO_ADMIN, ROLE.ACCOUNT_MANAGER].includes(roleXid)) {
|
||||
throw new ApiError(400, 'Invalid role. Only Co_Admin and Account_Manager roles can be assigned.');
|
||||
}
|
||||
|
||||
// Validate revenue details
|
||||
if (ROLE.ACCOUNT_MANAGER === roleXid) {
|
||||
if (!isFixedSalary && !perValue) {
|
||||
throw new ApiError(400, 'Revenue details are required');
|
||||
}
|
||||
}
|
||||
|
||||
if (perValue && perValue <= 0) {
|
||||
throw new ApiError(400, 'Per value must be greater than 0');
|
||||
}
|
||||
} = parseBody(event.body, inviteTeammateSchema);
|
||||
|
||||
// Use single service method that encapsulates the transaction
|
||||
await minglarService.inviteTeammate(
|
||||
|
||||
@@ -4,6 +4,8 @@ import { safeHandler } from "../../../common/utils/handlers/safeHandler";
|
||||
import ApiError from "../../../common/utils/helper/ApiError";
|
||||
import { PrePopulateService } from "../services/prepopulate.service";
|
||||
import { verifyHostToken } from "@/common/middlewares/jwt/authForHost";
|
||||
import { parseQueryParams } from "../../../common/utils/validation/validation.utils";
|
||||
import { getBankBranchesByBankIdQuerySchema } from "../../../common/utils/validation/prepopulate/prepopulate.validation";
|
||||
|
||||
const prismaService = new PrismaService();
|
||||
const prePopulateService = new PrePopulateService(prismaService);
|
||||
@@ -28,12 +30,11 @@ export const handler = safeHandler(async (
|
||||
// 2) Authenticate user
|
||||
await verifyHostToken(token);
|
||||
|
||||
// 3) Get bankXid from query params
|
||||
const bankXid = Number(event.queryStringParameters?.bankXid);
|
||||
|
||||
if (!bankXid || isNaN(bankXid)) {
|
||||
throw new ApiError(400, "Valid bankXid is required in query params.");
|
||||
}
|
||||
// 3) Parse and validate query params using Zod
|
||||
const { bankXid } = parseQueryParams(
|
||||
event.queryStringParameters,
|
||||
getBankBranchesByBankIdQuerySchema
|
||||
);
|
||||
|
||||
// 4) Fetch branches for the bank
|
||||
const branches = await prePopulateService.getBankBranchesByBankId(bankXid);
|
||||
|
||||
@@ -1,9 +1,11 @@
|
||||
import { verifyMinglarAdminHostToken } from '../../../common/middlewares/jwt/authForMinglarAdmin&Host';
|
||||
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 { PrePopulateService } from "../services/prepopulate.service";
|
||||
import { verifyHostToken } from "@/common/middlewares/jwt/authForHost";
|
||||
import { parseQueryParams } from "../../../common/utils/validation/validation.utils";
|
||||
import { getCityByStateIdQuerySchema } from "../../../common/utils/validation/prepopulate/prepopulate.validation";
|
||||
|
||||
const prismaService = new PrismaService();
|
||||
const prePopulateService = new PrePopulateService(prismaService);
|
||||
@@ -26,16 +28,15 @@ export const handler = safeHandler(async (
|
||||
}
|
||||
|
||||
// 2) Authenticate user
|
||||
await verifyHostToken(token);
|
||||
await verifyMinglarAdminHostToken(token);
|
||||
|
||||
// 3) Get bankXid from query params
|
||||
const stateXid = Number(event.queryStringParameters?.stateXid);
|
||||
// 3) Parse and validate query params using Zod
|
||||
const { stateXid } = parseQueryParams(
|
||||
event.queryStringParameters,
|
||||
getCityByStateIdQuerySchema
|
||||
);
|
||||
|
||||
if (!stateXid || isNaN(stateXid)) {
|
||||
throw new ApiError(400, "Valid stateXid is required in query params.");
|
||||
}
|
||||
|
||||
// 4) Fetch branches for the bank
|
||||
// 4) Fetch cities for the state
|
||||
const branches = await prePopulateService.getCityByStateId(stateXid);
|
||||
|
||||
return {
|
||||
|
||||
@@ -17,11 +17,10 @@ async function testStepperHandler() {
|
||||
const hostUser = await prisma.user.findFirst({
|
||||
where: { roleXid: 4 },
|
||||
include: {
|
||||
HostHeader: {
|
||||
hostHeaders: {
|
||||
select: {
|
||||
id: true,
|
||||
stepper: true,
|
||||
hostRefNumber: true,
|
||||
companyName: true,
|
||||
},
|
||||
},
|
||||
@@ -33,20 +32,19 @@ async function testStepperHandler() {
|
||||
return;
|
||||
}
|
||||
|
||||
if (!hostUser.HostHeader || hostUser.HostHeader.length === 0) {
|
||||
if (!hostUser.hostHeaders || hostUser.hostHeaders.length === 0) {
|
||||
console.log('⚠️ Host user found but no HostHeader records.');
|
||||
console.log(` User ID: ${hostUser.id}, Email: ${hostUser.emailAddress}`);
|
||||
return;
|
||||
}
|
||||
|
||||
const hostHeader = hostUser.HostHeader[0];
|
||||
const hostHeader = hostUser.hostHeaders[0];
|
||||
console.log(`✅ Found host user and HostHeader\n`);
|
||||
console.log(` User ID: ${hostUser.id}`);
|
||||
console.log(` Email: ${hostUser.emailAddress}`);
|
||||
console.log(` First Name: ${hostUser.firstName}`);
|
||||
console.log(` Host ID: ${hostHeader.id}`);
|
||||
console.log(` Company: ${hostHeader.companyName}`);
|
||||
console.log(` Ref Number: ${hostHeader.hostRefNumber}`);
|
||||
console.log(` Current Stepper: ${hostHeader.stepper}\n`);
|
||||
|
||||
// 2. Simulate what the handler returns
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -1 +0,0 @@
|
||||
{"code":"__filename=\"D:\\\\Minglar Backend NestJS\\\\src\\\\modules\\\\minglaradmin\\\\handlers\\\\getAmDetail_ById.ts\";(()=>{\nvar __create=Object.create;var __defProp=Object.defineProperty;var __getOwnPropDesc=Object.getOwnPropertyDescriptor;var __getOwnPropNames=Object.getOwnPropertyNames;var __getProtoOf=Object.getPrototypeOf;var __hasOwnProp=Object.prototype.hasOwnProperty;var __export=(target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:true})};var __copyProps=(to,from,except,desc)=>{if(from&&typeof from===\"object\"||typeof from===\"function\"){for(let key of __getOwnPropNames(from))if(!__hasOwnProp.call(to,key)&&key!==except)__defProp(to,key,{get:()=>from[key],enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable})}return to};var __toESM=(mod,isNodeMode,target)=>(target=mod!=null?__create(__getProtoOf(mod)):{},__copyProps(isNodeMode||!mod||!mod.__esModule?__defProp(target,\"default\",{value:mod,enumerable:true}):target,mod));var __toCommonJS=mod=>__copyProps(__defProp({},\"__esModule\",{value:true}),mod);var getAmDetail_ById_exports={};__export(getAmDetail_ById_exports,{handler:()=>handler});module.exports=__toCommonJS(getAmDetail_ById_exports);var import_safeHandler=require(\"../../../common/utils/handlers/safeHandler\");var import_prisma=require(\"../../../common/database/prisma.service\");var import_minglar=require(\"../services/minglar.service\");var import_ApiError=__toESM(require(\"../../../common/utils/helper/ApiError\"));var import_authForMinglarAdmin=require(\"../../../common/middlewares/jwt/authForMinglarAdmin\");const prismaService=new import_prisma.PrismaService;const minglarService=new import_minglar.MinglarService(prismaService);const handler=(0,import_safeHandler.safeHandler)(async(event,context)=>{const token=event.headers[\"x-auth-token\"]||event.headers[\"X-Auth-Token\"];if(!token){throw new import_ApiError.default(401,\"This is a protected route. Please provide a valid token.\")}await(0,import_authForMinglarAdmin.verifyMinglarAdminToken)(token);const amXid=event.pathParameters?.amXid;if(!amXid){throw new import_ApiError.default(400,\"Account Manager XID is required in path parameters.\")}const amId=Number(amXid);if(Number.isNaN(amId)){throw new import_ApiError.default(400,\"Account Manager XID must be a valid number.\")}const getAmDetailsByid=await minglarService.getAMdetailById(amId);return{statusCode:200,headers:{\"Content-Type\":\"application/json\",\"Access-Control-Allow-Origin\":\"*\"},body:JSON.stringify({success:true,message:\"Host applications retrieved successfully\",data:getAmDetailsByid})}});0&&(module.exports={handler});\n})()\n","warnings":[],"map":{"version":3,"mappings":";m6BAAA,+IAKA,uBAA4B,sDAC5B,kBAA8B,mDAC9B,mBAA+B,uCAC/B,oBAAqB,0DACrB,+BAAwC,+DAExC,MAAM,cAAgB,IAAI,4BAC1B,MAAM,eAAiB,IAAI,8BAAe,aAAa,EAMhD,MAAM,WAAU,gCACrB,MACE,MACA,UACmC,CAEnC,MAAM,MACJ,MAAM,QAAQ,cAAc,GAAK,MAAM,QAAQ,cAAc,EAC/D,GAAI,CAAC,MAAO,CACV,MAAM,IAAI,gBAAAA,QACR,IACA,0DACF,CACF,CAEA,QAAM,oDAAwB,KAAK,EAEnC,MAAM,MAAQ,MAAM,gBAAgB,MACpC,GAAI,CAAC,MAAO,CACV,MAAM,IAAI,gBAAAA,QACR,IACA,qDACF,CACF,CAEA,MAAM,KAAO,OAAO,KAAK,EACzB,GAAI,OAAO,MAAM,IAAI,EAAG,CACtB,MAAM,IAAI,gBAAAA,QAAS,IAAK,6CAA6C,CACvE,CAIA,MAAM,iBAAmB,MAAM,eAAe,gBAAiB,IAAK,EAEpE,MAAO,CACL,WAAY,IACZ,QAAS,CACP,eAAgB,mBAChB,8BAA+B,GACjC,EACA,KAAM,KAAK,UAAU,CACnB,QAAS,KACT,QAAS,2CACT,KAAM,gBACR,CAAC,CACH,CACF,CACF","names":["ApiError"],"ignoreList":[],"sources":["D:\\Minglar Backend NestJS\\src\\modules\\minglaradmin\\handlers\\getAmDetail_ById.ts"],"sourcesContent":[null]}}
|
||||
@@ -1 +0,0 @@
|
||||
{"code":"__filename=\"D:\\\\Minglar Backend NestJS\\\\src\\\\modules\\\\minglaradmin\\\\services\\\\AMEmail.service.ts\";(()=>{\nvar __create=Object.create;var __defProp=Object.defineProperty;var __getOwnPropDesc=Object.getOwnPropertyDescriptor;var __getOwnPropNames=Object.getOwnPropertyNames;var __getProtoOf=Object.getPrototypeOf;var __hasOwnProp=Object.prototype.hasOwnProperty;var __name=(target,value)=>__defProp(target,\"name\",{value,configurable:true});var __export=(target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:true})};var __copyProps=(to,from,except,desc)=>{if(from&&typeof from===\"object\"||typeof from===\"function\"){for(let key of __getOwnPropNames(from))if(!__hasOwnProp.call(to,key)&&key!==except)__defProp(to,key,{get:()=>from[key],enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable})}return to};var __toESM=(mod,isNodeMode,target)=>(target=mod!=null?__create(__getProtoOf(mod)):{},__copyProps(isNodeMode||!mod||!mod.__esModule?__defProp(target,\"default\",{value:mod,enumerable:true}):target,mod));var __toCommonJS=mod=>__copyProps(__defProp({},\"__esModule\",{value:true}),mod);var AMEmail_service_exports={};__export(AMEmail_service_exports,{sendAMEmailForHostAssign:()=>sendAMEmailForHostAssign});module.exports=__toCommonJS(AMEmail_service_exports);var import_brevoApi=require(\"@/common/email/brevoApi\");var import_ApiError=__toESM(require(\"@/common/utils/helper/ApiError\"));async function sendAMEmailForHostAssign(emailAddress){const subject=\"Minglar Admin: Host Assignment Notification\";const htmlContent=`\n <p>Hi,</p>\n\n <p>You\\u2019ve been assigned the <strong>Host</strong> role by Minglar Admin.</p>\n\n <p>Best regards,<br/>Minglar Admin Team</p>\n `;try{const result=await import_brevoApi.brevoService.sendEmail({recipients:[{email:emailAddress}],subject,htmlContent});console.log(\"\\u{1F4E7} Email sent successfully:\",result);return{sent:true}}catch(err){console.error(\"Brevo email send failed:\",err);throw new import_ApiError.default(500,\"Failed to send invitation via email.\")}}__name(sendAMEmailForHostAssign,\"sendAMEmailForHostAssign\");0&&(module.exports={sendAMEmailForHostAssign});\n})()\n","warnings":[],"map":{"version":3,"mappings":";i/BAAA,8KACA,oBAA6B,mCAC7B,oBAAqB,mDAErB,eAAsB,yBAAyB,aAG5C,CACD,MAAM,QAAU,8CAEhB,MAAM,YAAc;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQpB,GAAI,CACF,MAAM,OAAS,MAAM,6BAAa,UAAU,CAC1C,WAAY,CAAC,CAAE,MAAO,YAAa,CAAC,EACpC,QACA,WACF,CAAC,EAED,QAAQ,IAAI,qCAA+B,MAAM,EAEjD,MAAO,CACL,KAAM,IAER,CACF,OAAS,IAAK,CACZ,QAAQ,MAAM,2BAA4B,GAAG,EAC7C,MAAM,IAAI,gBAAAA,QAAS,IAAK,sCAAsC,CAChE,CACF,CA/BsB","names":["ApiError"],"ignoreList":[],"sources":["D:\\Minglar Backend NestJS\\src\\modules\\minglaradmin\\services\\AMEmail.service.ts"],"sourcesContent":[null]}}
|
||||
@@ -1 +0,0 @@
|
||||
{"code":"__filename=\"D:\\\\Minglar Backend NestJS\\\\src\\\\modules\\\\minglaradmin\\\\services\\\\AMEmail.service.ts\";(()=>{\nvar __create=Object.create;var __defProp=Object.defineProperty;var __getOwnPropDesc=Object.getOwnPropertyDescriptor;var __getOwnPropNames=Object.getOwnPropertyNames;var __getProtoOf=Object.getPrototypeOf;var __hasOwnProp=Object.prototype.hasOwnProperty;var __name=(target,value)=>__defProp(target,\"name\",{value,configurable:true});var __export=(target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:true})};var __copyProps=(to,from,except,desc)=>{if(from&&typeof from===\"object\"||typeof from===\"function\"){for(let key of __getOwnPropNames(from))if(!__hasOwnProp.call(to,key)&&key!==except)__defProp(to,key,{get:()=>from[key],enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable})}return to};var __toESM=(mod,isNodeMode,target)=>(target=mod!=null?__create(__getProtoOf(mod)):{},__copyProps(isNodeMode||!mod||!mod.__esModule?__defProp(target,\"default\",{value:mod,enumerable:true}):target,mod));var __toCommonJS=mod=>__copyProps(__defProp({},\"__esModule\",{value:true}),mod);var AMEmail_service_exports={};__export(AMEmail_service_exports,{sendAMEmailForHostAssign:()=>sendAMEmailForHostAssign});module.exports=__toCommonJS(AMEmail_service_exports);var import_brevoApi=require(\"@/common/email/brevoApi\");var import_ApiError=__toESM(require(\"@/common/utils/helper/ApiError\"));async function sendAMEmailForHostAssign(emailAddress){const subject=\"Minglar Admin: Host Assignment Notification\";const htmlContent=`\n <p>Hi,</p>\n\n <p>You\\u2019ve been assigned the <strong>Host</strong> role by Minglar Admin.</p>\n\n <p>Best regards,<br/>Minglar Admin Team</p>\n `;try{const result=await import_brevoApi.brevoService.sendEmail({recipients:[{email:emailAddress}],subject,htmlContent});console.log(\"\\u{1F4E7} Email sent successfully:\",result);return{sent:true}}catch(err){console.error(\"Brevo email send failed:\",err);throw new import_ApiError.default(500,\"Failed to send invitation via email.\")}}__name(sendAMEmailForHostAssign,\"sendAMEmailForHostAssign\");0&&(module.exports={sendAMEmailForHostAssign});\n})()\n","warnings":[],"map":{"version":3,"mappings":";i/BAAA,8KACA,oBAA6B,mCAC7B,oBAAqB,mDAErB,eAAsB,yBAAyB,aAG5C,CACD,MAAM,QAAU,8CAEhB,MAAM,YAAc;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQpB,GAAI,CACF,MAAM,OAAS,MAAM,6BAAa,UAAU,CAC1C,WAAY,CAAC,CAAE,MAAO,YAAa,CAAC,EACpC,QACA,WACF,CAAC,EAED,QAAQ,IAAI,qCAA+B,MAAM,EAEjD,MAAO,CACL,KAAM,IAER,CACF,OAAS,IAAK,CACZ,QAAQ,MAAM,2BAA4B,GAAG,EAC7C,MAAM,IAAI,gBAAAA,QAAS,IAAK,sCAAsC,CAChE,CACF,CA/BsB","names":["ApiError"],"ignoreList":[],"sources":["D:\\Minglar Backend NestJS\\src\\modules\\minglaradmin\\services\\AMEmail.service.ts"],"sourcesContent":[null]}}
|
||||
@@ -1 +0,0 @@
|
||||
{"code":"__filename=\"D:\\\\Minglar Backend NestJS\\\\src\\\\common\\\\utils\\\\constants\\\\host.constant.ts\";(()=>{\nvar __defProp=Object.defineProperty;var __getOwnPropDesc=Object.getOwnPropertyDescriptor;var __getOwnPropNames=Object.getOwnPropertyNames;var __hasOwnProp=Object.prototype.hasOwnProperty;var __export=(target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:true})};var __copyProps=(to,from,except,desc)=>{if(from&&typeof from===\"object\"||typeof from===\"function\"){for(let key of __getOwnPropNames(from))if(!__hasOwnProp.call(to,key)&&key!==except)__defProp(to,key,{get:()=>from[key],enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable})}return to};var __toCommonJS=mod=>__copyProps(__defProp({},\"__esModule\",{value:true}),mod);var host_constant_exports={};__export(host_constant_exports,{ACTIVITY_AM_DISPLAY_STATUS:()=>ACTIVITY_AM_DISPLAY_STATUS,ACTIVITY_AM_INTERNAL_STATUS:()=>ACTIVITY_AM_INTERNAL_STATUS,ACTIVITY_DISPLAY_STATUS:()=>ACTIVITY_DISPLAY_STATUS,ACTIVITY_INTERNAL_STATUS:()=>ACTIVITY_INTERNAL_STATUS,HOST_STATUS_DISPLAY:()=>HOST_STATUS_DISPLAY,HOST_STATUS_INTERNAL:()=>HOST_STATUS_INTERNAL,LAST_QUESTION_ID:()=>LAST_QUESTION_ID,STEPPER:()=>STEPPER});module.exports=__toCommonJS(host_constant_exports);const HOST_STATUS_INTERNAL={HOST_SUBMITTED:\"Host Submitted\",HOST_TO_UPDATE:\"Host To Update\",REJECTED:\"Rejected\",APPROVED:\"Approved\",DRAFT:\"Draft\"};const HOST_STATUS_DISPLAY={DRAFT:\"Draft\",UNDER_REVIEW:\"Under Review\",ENHANCING:\"Enhancing\",REJECTED:\"Rejected\",APPROVED:\"Approved\"};const STEPPER={NOT_SUBMITTED:1,UNDER_REVIEW:2,COMPANY_DETAILS_APPROVED:3,BANK_DETAILS_UPDATED:4,AGREEMENT_ACCEPTED:5,REJECTED:6};const LAST_QUESTION_ID={Q_ID:55};const ACTIVITY_INTERNAL_STATUS={DRAFT_PQ:\"Draft - PQ\",APPROVED:\"Approved\",REJECTED:\"Rejected\",DRAFT:\"Draft\",UNDER_REVIEW:\"Under-Review\",PQQ_FAILED:\"PQQ Failed\",PQQ_TO_UPDATE:\"PQ To Update\",PQQ_SUBMITTED:\"PQ Submitted\"};const ACTIVITY_DISPLAY_STATUS={DRAFT_PQ:\"Draft - PQ\",APPROVED:\"Approved\",REJECTED:\"Rejected\",DRAFT:\"Draft\",UNDER_REVIEW:\"Under-Review\",PQQ_FAILED:\"PQQ Failed\",ENHANCING:\"Enchancing\",PQ_IN_REVIEW:\"PQ In Review\"};const ACTIVITY_AM_INTERNAL_STATUS={DRAFT_PQ:\"Draft - PQ\",APPROVED:\"Approved\",REJECTED:\"Rejected\",DRAFT:\"Draft\",UNDER_REVIEW:\"Under-Review\",PQQ_FAILED:\"PQQ Failed\",PQQ_REJECTED:\"PQ Rejected\",PQQ_TO_REVIEW:\"PQ To Review\"};const ACTIVITY_AM_DISPLAY_STATUS={DRAFT_PQ:\"Draft - PQ\",APPROVED:\"Approved\",REJECTED:\"Rejected\",DRAFT:\"Draft\",UNDER_REVIEW:\"Under-Review\",PQQ_FAILED:\"PQQ Failed\",ENHANCING:\"Enchancing\",NEW:\"New\"};0&&(module.exports={ACTIVITY_AM_DISPLAY_STATUS,ACTIVITY_AM_INTERNAL_STATUS,ACTIVITY_DISPLAY_STATUS,ACTIVITY_INTERNAL_STATUS,HOST_STATUS_DISPLAY,HOST_STATUS_INTERNAL,LAST_QUESTION_ID,STEPPER});\n})()\n","warnings":[],"map":{"version":3,"mappings":";wpBAAA,seAAO,MAAM,qBAAuB,CAChC,eAAgB,iBAChB,eAAgB,iBAChB,SAAU,WACV,SAAU,WACV,MAAO,OACX,EAEO,MAAM,oBAAsB,CAC/B,MAAO,QACP,aAAc,eACd,UAAW,YACX,SAAU,WACV,SAAU,UACd,EAEO,MAAM,QAAU,CACnB,cAAe,EACf,aAAc,EACd,yBAA0B,EAC1B,qBAAsB,EACtB,mBAAoB,EACpB,SAAU,CACd,EAEO,MAAM,iBAAmB,CAC5B,KAAM,EACV,EAEO,MAAM,yBAA2B,CACpC,SAAU,aACV,SAAU,WACV,SAAU,WACV,MAAO,QACP,aAAc,eACd,WAAY,aACZ,cAAe,eACf,cAAe,cACnB,EAEO,MAAM,wBAA0B,CACnC,SAAU,aACV,SAAU,WACV,SAAU,WACV,MAAO,QACP,aAAc,eACd,WAAY,aACZ,UAAW,aACX,aAAc,cAClB,EAEO,MAAM,4BAA8B,CACvC,SAAU,aACV,SAAU,WACV,SAAU,WACV,MAAO,QACP,aAAc,eACd,WAAY,aACZ,aAAc,cACd,cAAe,cACnB,EAEO,MAAM,2BAA6B,CACtC,SAAU,aACV,SAAU,WACV,SAAU,WACV,MAAO,QACP,aAAc,eACd,WAAY,aACZ,UAAW,aACX,IAAK,KACT","names":[],"ignoreList":[],"sources":["D:\\Minglar Backend NestJS\\src\\common\\utils\\constants\\host.constant.ts"],"sourcesContent":[null]}}
|
||||
@@ -1 +0,0 @@
|
||||
{"code":"__filename=\"D:\\\\Minglar Backend NestJS\\\\src\\\\common\\\\middlewares\\\\aws\\\\getPreSignedUrl.ts\";(()=>{\nvar __create=Object.create;var __defProp=Object.defineProperty;var __getOwnPropDesc=Object.getOwnPropertyDescriptor;var __getOwnPropNames=Object.getOwnPropertyNames;var __getProtoOf=Object.getPrototypeOf;var __hasOwnProp=Object.prototype.hasOwnProperty;var __name=(target,value)=>__defProp(target,\"name\",{value,configurable:true});var __export=(target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:true})};var __copyProps=(to,from,except,desc)=>{if(from&&typeof from===\"object\"||typeof from===\"function\"){for(let key of __getOwnPropNames(from))if(!__hasOwnProp.call(to,key)&&key!==except)__defProp(to,key,{get:()=>from[key],enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable})}return to};var __toESM=(mod,isNodeMode,target)=>(target=mod!=null?__create(__getProtoOf(mod)):{},__copyProps(isNodeMode||!mod||!mod.__esModule?__defProp(target,\"default\",{value:mod,enumerable:true}):target,mod));var __toCommonJS=mod=>__copyProps(__defProp({},\"__esModule\",{value:true}),mod);var getPreSignedUrl_exports={};__export(getPreSignedUrl_exports,{getPresignedUrl:()=>getPresignedUrl});module.exports=__toCommonJS(getPreSignedUrl_exports);var import_config=__toESM(require(\"@/config/config\"));var import_client_s3=require(\"@aws-sdk/client-s3\");var import_s3_request_presigner=require(\"@aws-sdk/s3-request-presigner\");const s3=new import_client_s3.S3Client({region:import_config.default.aws.region});const getPresignedUrl=__name(async(bucket,key)=>{const command=new import_client_s3.GetObjectCommand({Bucket:bucket,Key:key});return await(0,import_s3_request_presigner.getSignedUrl)(s3,command,{expiresIn:3600})},\"getPresignedUrl\");0&&(module.exports={getPresignedUrl});\n})()\n","warnings":[],"map":{"version":3,"mappings":";i/BAAA,4JACA,kBAAmB,oCACnB,qBAA2C,8BAC3C,gCAA6B,yCAE7B,MAAM,GAAK,IAAI,0BAAS,CACtB,OAAQ,cAAAA,QAAO,IAAI,MACrB,CAAC,EAEM,MAAM,gBAAkB,aAAO,OAAgB,MAAgB,CACpE,MAAM,QAAU,IAAI,kCAAiB,CACnC,OAAQ,OACR,IAAK,GACP,CAAC,EAGD,OAAO,QAAM,0CAAa,GAAI,QAAS,CAAE,UAAW,IAAK,CAAC,CAC5D,EAR+B","names":["config"],"ignoreList":[],"sources":["D:\\Minglar Backend NestJS\\src\\common\\middlewares\\aws\\getPreSignedUrl.ts"],"sourcesContent":[null]}}
|
||||
@@ -1 +0,0 @@
|
||||
{"code":"__filename=\"D:\\\\Minglar Backend NestJS\\\\src\\\\common\\\\utils\\\\constants\\\\host.constant.ts\";(()=>{\nvar __defProp=Object.defineProperty;var __getOwnPropDesc=Object.getOwnPropertyDescriptor;var __getOwnPropNames=Object.getOwnPropertyNames;var __hasOwnProp=Object.prototype.hasOwnProperty;var __export=(target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:true})};var __copyProps=(to,from,except,desc)=>{if(from&&typeof from===\"object\"||typeof from===\"function\"){for(let key of __getOwnPropNames(from))if(!__hasOwnProp.call(to,key)&&key!==except)__defProp(to,key,{get:()=>from[key],enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable})}return to};var __toCommonJS=mod=>__copyProps(__defProp({},\"__esModule\",{value:true}),mod);var host_constant_exports={};__export(host_constant_exports,{ACTIVITY_AM_DISPLAY_STATUS:()=>ACTIVITY_AM_DISPLAY_STATUS,ACTIVITY_AM_INTERNAL_STATUS:()=>ACTIVITY_AM_INTERNAL_STATUS,ACTIVITY_DISPLAY_STATUS:()=>ACTIVITY_DISPLAY_STATUS,ACTIVITY_INTERNAL_STATUS:()=>ACTIVITY_INTERNAL_STATUS,HOST_STATUS_DISPLAY:()=>HOST_STATUS_DISPLAY,HOST_STATUS_INTERNAL:()=>HOST_STATUS_INTERNAL,LAST_QUESTION_ID:()=>LAST_QUESTION_ID,STEPPER:()=>STEPPER});module.exports=__toCommonJS(host_constant_exports);const HOST_STATUS_INTERNAL={HOST_SUBMITTED:\"Host Submitted\",HOST_TO_UPDATE:\"Host To Update\",REJECTED:\"Rejected\",APPROVED:\"Approved\",DRAFT:\"Draft\"};const HOST_STATUS_DISPLAY={DRAFT:\"Draft\",UNDER_REVIEW:\"Under Review\",ENHANCING:\"Enhancing\",REJECTED:\"Rejected\",APPROVED:\"Approved\"};const STEPPER={NOT_SUBMITTED:1,UNDER_REVIEW:2,COMPANY_DETAILS_APPROVED:3,BANK_DETAILS_UPDATED:4,AGREEMENT_ACCEPTED:5,REJECTED:6};const LAST_QUESTION_ID={Q_ID:55};const ACTIVITY_INTERNAL_STATUS={DRAFT_PQ:\"Draft - PQ\",APPROVED:\"Approved\",REJECTED:\"Rejected\",DRAFT:\"Draft\",UNDER_REVIEW:\"Under-Review\",PQQ_FAILED:\"PQQ Failed\",PQQ_TO_UPDATE:\"PQ To Update\",PQQ_SUBMITTED:\"PQ Submitted\"};const ACTIVITY_DISPLAY_STATUS={DRAFT_PQ:\"Draft - PQ\",APPROVED:\"Approved\",REJECTED:\"Rejected\",DRAFT:\"Draft\",UNDER_REVIEW:\"Under-Review\",PQQ_FAILED:\"PQQ Failed\",ENHANCING:\"Enchancing\",PQ_IN_REVIEW:\"PQ In Review\"};const ACTIVITY_AM_INTERNAL_STATUS={DRAFT_PQ:\"Draft - PQ\",APPROVED:\"Approved\",REJECTED:\"Rejected\",DRAFT:\"Draft\",UNDER_REVIEW:\"Under-Review\",PQQ_FAILED:\"PQQ Failed\",PQQ_REJECTED:\"PQ Rejected\",PQQ_TO_REVIEW:\"PQ To Review\"};const ACTIVITY_AM_DISPLAY_STATUS={DRAFT_PQ:\"Draft - PQ\",APPROVED:\"Approved\",REJECTED:\"Rejected\",DRAFT:\"Draft\",UNDER_REVIEW:\"Under-Review\",PQQ_FAILED:\"PQQ Failed\",ENHANCING:\"Enchancing\",NEW:\"New\"};0&&(module.exports={ACTIVITY_AM_DISPLAY_STATUS,ACTIVITY_AM_INTERNAL_STATUS,ACTIVITY_DISPLAY_STATUS,ACTIVITY_INTERNAL_STATUS,HOST_STATUS_DISPLAY,HOST_STATUS_INTERNAL,LAST_QUESTION_ID,STEPPER});\n})()\n","warnings":[],"map":{"version":3,"mappings":";wpBAAA,seAAO,MAAM,qBAAuB,CAChC,eAAgB,iBAChB,eAAgB,iBAChB,SAAU,WACV,SAAU,WACV,MAAO,OACX,EAEO,MAAM,oBAAsB,CAC/B,MAAO,QACP,aAAc,eACd,UAAW,YACX,SAAU,WACV,SAAU,UACd,EAEO,MAAM,QAAU,CACnB,cAAe,EACf,aAAc,EACd,yBAA0B,EAC1B,qBAAsB,EACtB,mBAAoB,EACpB,SAAU,CACd,EAEO,MAAM,iBAAmB,CAC5B,KAAM,EACV,EAEO,MAAM,yBAA2B,CACpC,SAAU,aACV,SAAU,WACV,SAAU,WACV,MAAO,QACP,aAAc,eACd,WAAY,aACZ,cAAe,eACf,cAAe,cACnB,EAEO,MAAM,wBAA0B,CACnC,SAAU,aACV,SAAU,WACV,SAAU,WACV,MAAO,QACP,aAAc,eACd,WAAY,aACZ,UAAW,aACX,aAAc,cAClB,EAEO,MAAM,4BAA8B,CACvC,SAAU,aACV,SAAU,WACV,SAAU,WACV,MAAO,QACP,aAAc,eACd,WAAY,aACZ,aAAc,cACd,cAAe,cACnB,EAEO,MAAM,2BAA6B,CACtC,SAAU,aACV,SAAU,WACV,SAAU,WACV,MAAO,QACP,aAAc,eACd,WAAY,aACZ,UAAW,aACX,IAAK,KACT","names":[],"ignoreList":[],"sources":["D:\\Minglar Backend NestJS\\src\\common\\utils\\constants\\host.constant.ts"],"sourcesContent":[null]}}
|
||||
File diff suppressed because one or more lines are too long
@@ -1 +0,0 @@
|
||||
{"code":"__filename=\"D:\\\\Minglar Backend NestJS\\\\src\\\\common\\\\middlewares\\\\aws\\\\getPreSignedUrl.ts\";(()=>{\nvar __create=Object.create;var __defProp=Object.defineProperty;var __getOwnPropDesc=Object.getOwnPropertyDescriptor;var __getOwnPropNames=Object.getOwnPropertyNames;var __getProtoOf=Object.getPrototypeOf;var __hasOwnProp=Object.prototype.hasOwnProperty;var __name=(target,value)=>__defProp(target,\"name\",{value,configurable:true});var __export=(target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:true})};var __copyProps=(to,from,except,desc)=>{if(from&&typeof from===\"object\"||typeof from===\"function\"){for(let key of __getOwnPropNames(from))if(!__hasOwnProp.call(to,key)&&key!==except)__defProp(to,key,{get:()=>from[key],enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable})}return to};var __toESM=(mod,isNodeMode,target)=>(target=mod!=null?__create(__getProtoOf(mod)):{},__copyProps(isNodeMode||!mod||!mod.__esModule?__defProp(target,\"default\",{value:mod,enumerable:true}):target,mod));var __toCommonJS=mod=>__copyProps(__defProp({},\"__esModule\",{value:true}),mod);var getPreSignedUrl_exports={};__export(getPreSignedUrl_exports,{getPresignedUrl:()=>getPresignedUrl});module.exports=__toCommonJS(getPreSignedUrl_exports);var import_config=__toESM(require(\"@/config/config\"));var import_client_s3=require(\"@aws-sdk/client-s3\");var import_s3_request_presigner=require(\"@aws-sdk/s3-request-presigner\");const s3=new import_client_s3.S3Client({region:import_config.default.aws.region});const getPresignedUrl=__name(async(bucket,key)=>{const command=new import_client_s3.GetObjectCommand({Bucket:bucket,Key:key});return await(0,import_s3_request_presigner.getSignedUrl)(s3,command,{expiresIn:3600})},\"getPresignedUrl\");0&&(module.exports={getPresignedUrl});\n})()\n","warnings":[],"map":{"version":3,"mappings":";i/BAAA,4JACA,kBAAmB,oCACnB,qBAA2C,8BAC3C,gCAA6B,yCAE7B,MAAM,GAAK,IAAI,0BAAS,CACtB,OAAQ,cAAAA,QAAO,IAAI,MACrB,CAAC,EAEM,MAAM,gBAAkB,aAAO,OAAgB,MAAgB,CACpE,MAAM,QAAU,IAAI,kCAAiB,CACnC,OAAQ,OACR,IAAK,GACP,CAAC,EAGD,OAAO,QAAM,0CAAa,GAAI,QAAS,CAAE,UAAW,IAAK,CAAC,CAC5D,EAR+B","names":["config"],"ignoreList":[],"sources":["D:\\Minglar Backend NestJS\\src\\common\\middlewares\\aws\\getPreSignedUrl.ts"],"sourcesContent":[null]}}
|
||||
@@ -1 +0,0 @@
|
||||
{"code":"__filename=\"D:\\\\Minglar Backend NestJS\\\\src\\\\common\\\\utils\\\\constants\\\\common.constant.ts\";(()=>{\nvar __defProp=Object.defineProperty;var __getOwnPropDesc=Object.getOwnPropertyDescriptor;var __getOwnPropNames=Object.getOwnPropertyNames;var __hasOwnProp=Object.prototype.hasOwnProperty;var __export=(target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:true})};var __copyProps=(to,from,except,desc)=>{if(from&&typeof from===\"object\"||typeof from===\"function\"){for(let key of __getOwnPropNames(from))if(!__hasOwnProp.call(to,key)&&key!==except)__defProp(to,key,{get:()=>from[key],enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable})}return to};var __toCommonJS=mod=>__copyProps(__defProp({},\"__esModule\",{value:true}),mod);var common_constant_exports={};__export(common_constant_exports,{ROLE:()=>ROLE,ROLE_NAME:()=>ROLE_NAME,USER_STATUS:()=>USER_STATUS});module.exports=__toCommonJS(common_constant_exports);const ROLE={MINGLAR_ADMIN:1,CO_ADMIN:2,ACCOUNT_MANAGER:3,HOST:4,OPERATOR:5,USER:6};const ROLE_NAME={MINGLAR_ADMIN:\"Minglar Admin\",CO_ADMIN:\"Co-admin\",ACCOUNT_MANAGER:\"Account manager\",HOST:\"Host\",OPERATOR:\"Operator\",USER:\"User\"};const USER_STATUS={INVITED:\"Invited\",ACTIVE:\"Active\",DE_ACTIVATED:\"De-activated\",REJECTED:\"Rejected\"};0&&(module.exports={ROLE,ROLE_NAME,USER_STATUS});\n})()\n","warnings":[],"map":{"version":3,"mappings":";wpBAAA,0LAAO,MAAM,KAAO,CAChB,cAAe,EACf,SAAU,EACV,gBAAiB,EACjB,KAAM,EACN,SAAU,EACV,KAAM,CACV,EAEO,MAAM,UAAY,CACrB,cAAe,gBACf,SAAU,WACV,gBAAiB,kBACjB,KAAM,OACN,SAAU,WACV,KAAM,MACV,EAEO,MAAM,YAAc,CACvB,QAAS,UACT,OAAQ,SACR,aAAc,eACd,SAAU,UACd","names":[],"ignoreList":[],"sources":["D:\\Minglar Backend NestJS\\src\\common\\utils\\constants\\common.constant.ts"],"sourcesContent":[null]}}
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1 +0,0 @@
|
||||
{"code":"__filename=\"D:\\\\Minglar Backend NestJS\\\\src\\\\common\\\\email\\\\brevoApi.ts\";(()=>{\nvar __create=Object.create;var __defProp=Object.defineProperty;var __getOwnPropDesc=Object.getOwnPropertyDescriptor;var __getOwnPropNames=Object.getOwnPropertyNames;var __getProtoOf=Object.getPrototypeOf;var __hasOwnProp=Object.prototype.hasOwnProperty;var __name=(target,value)=>__defProp(target,\"name\",{value,configurable:true});var __export=(target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:true})};var __copyProps=(to,from,except,desc)=>{if(from&&typeof from===\"object\"||typeof from===\"function\"){for(let key of __getOwnPropNames(from))if(!__hasOwnProp.call(to,key)&&key!==except)__defProp(to,key,{get:()=>from[key],enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable})}return to};var __toESM=(mod,isNodeMode,target)=>(target=mod!=null?__create(__getProtoOf(mod)):{},__copyProps(isNodeMode||!mod||!mod.__esModule?__defProp(target,\"default\",{value:mod,enumerable:true}):target,mod));var __toCommonJS=mod=>__copyProps(__defProp({},\"__esModule\",{value:true}),mod);var brevoApi_exports={};__export(brevoApi_exports,{brevoService:()=>brevoService});module.exports=__toCommonJS(brevoApi_exports);var import_axios=__toESM(require(\"axios\"));var import_config=__toESM(require(\"../../config/config\"));class BrevoService{static{__name(this,\"BrevoService\")}constructor(){this.instance=import_axios.default.create({baseURL:import_config.default.email.BrevobaseURL,headers:{\"api-key\":import_config.default.email.api_key,\"Content-Type\":\"application/json\"}})}async sendEmail(options){const response=await this.instance.post(\"/smtp/email\",{sender:{name:\"Minglar\",email:\"minglar.admin@minglargroup.com\"},to:options.recipients,subject:options.subject,htmlContent:options.htmlContent,replyTo:{email:\"minglar.admin@minglargroup.com\"}});return response.data}}const brevoService=new BrevoService;0&&(module.exports={brevoService});\n})()\n","warnings":[],"map":{"version":3,"mappings":";i/BAAA,kJAAqC,0BACrC,kBAAmB,wCAanB,MAAM,YAAa,CAdnB,MAcmB,6BAGjB,aAAc,CACZ,KAAK,SAAW,aAAAA,QAAM,OAAO,CAC3B,QAAS,cAAAC,QAAO,MAAM,aACtB,QAAS,CACP,UAAW,cAAAA,QAAO,MAAM,QACxB,eAAgB,kBAClB,CACF,CAAC,CACH,CAEA,MAAM,UAAU,QAAuD,CACrE,MAAM,SAAW,MAAM,KAAK,SAAS,KAAK,cAAe,CACvD,OAAQ,CACN,KAAM,UACN,MAAO,gCACT,EACA,GAAI,QAAQ,WACZ,QAAS,QAAQ,QACjB,YAAa,QAAQ,YACrB,QAAS,CACP,MAAO,gCACT,CACF,CAAC,EAED,OAAO,SAAS,IAClB,CACF,CAEO,MAAM,aAAe,IAAI","names":["axios","config"],"ignoreList":[],"sources":["D:\\Minglar Backend NestJS\\src\\common\\email\\brevoApi.ts"],"sourcesContent":[null]}}
|
||||
File diff suppressed because one or more lines are too long
@@ -1 +0,0 @@
|
||||
{"code":"__filename=\"D:\\\\Minglar Backend NestJS\\\\src\\\\common\\\\database\\\\prisma.client.ts\";(()=>{\nvar __defProp=Object.defineProperty;var __getOwnPropDesc=Object.getOwnPropertyDescriptor;var __getOwnPropNames=Object.getOwnPropertyNames;var __hasOwnProp=Object.prototype.hasOwnProperty;var __export=(target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:true})};var __copyProps=(to,from,except,desc)=>{if(from&&typeof from===\"object\"||typeof from===\"function\"){for(let key of __getOwnPropNames(from))if(!__hasOwnProp.call(to,key)&&key!==except)__defProp(to,key,{get:()=>from[key],enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable})}return to};var __toCommonJS=mod=>__copyProps(__defProp({},\"__esModule\",{value:true}),mod);var prisma_client_exports={};__export(prisma_client_exports,{prisma:()=>prisma});module.exports=__toCommonJS(prisma_client_exports);var import_client=require(\"@prisma/client\");var import_adapter_pg=require(\"@prisma/adapter-pg\");const adapter=new import_adapter_pg.PrismaPg({connectionString:process.env.DATABASE_URL});const prisma=new import_client.PrismaClient({adapter,log:process.env.NODE_ENV===\"dev\"?[\"query\",\"info\",\"warn\",\"error\"]:[\"error\"]});0&&(module.exports={prisma});\n})()\n","warnings":[],"map":{"version":3,"mappings":";wpBAAA,sJAA6B,0BAC7B,sBAAyB,8BAEzB,MAAM,QAAU,IAAI,2BAAS,CAAE,iBAAkB,QAAQ,IAAI,YAAa,CAAC,EAEpE,MAAM,OAAS,IAAI,2BAAa,CACrC,QACA,IAAK,QAAQ,IAAI,WAAa,MAAQ,CAAC,QAAS,OAAQ,OAAQ,OAAO,EAAI,CAAC,OAAO,CACrF,CAAC","names":[],"ignoreList":[],"sources":["D:\\Minglar Backend NestJS\\src\\common\\database\\prisma.client.ts"],"sourcesContent":[null]}}
|
||||
@@ -1 +0,0 @@
|
||||
{"code":"__filename=\"D:\\\\Minglar Backend NestJS\\\\src\\\\common\\\\utils\\\\constants\\\\minglar.constant.ts\";(()=>{\nvar __defProp=Object.defineProperty;var __getOwnPropDesc=Object.getOwnPropertyDescriptor;var __getOwnPropNames=Object.getOwnPropertyNames;var __hasOwnProp=Object.prototype.hasOwnProperty;var __export=(target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:true})};var __copyProps=(to,from,except,desc)=>{if(from&&typeof from===\"object\"||typeof from===\"function\"){for(let key of __getOwnPropNames(from))if(!__hasOwnProp.call(to,key)&&key!==except)__defProp(to,key,{get:()=>from[key],enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable})}return to};var __toCommonJS=mod=>__copyProps(__defProp({},\"__esModule\",{value:true}),mod);var minglar_constant_exports={};__export(minglar_constant_exports,{HOST_SUGGESTION_TITLES:()=>HOST_SUGGESTION_TITLES,MINGLAR_INVITATION_STATUS:()=>MINGLAR_INVITATION_STATUS,MINGLAR_STATUS_DISPLAY:()=>MINGLAR_STATUS_DISPLAY,MINGLAR_STATUS_INTERNAL:()=>MINGLAR_STATUS_INTERNAL});module.exports=__toCommonJS(minglar_constant_exports);const MINGLAR_STATUS_INTERNAL={ADMIN_TO_REVIEW:\"Admin To Review\",ADMIN_REJECTED:\"Admin Rejected\",AM_NOT_ASSIGNED:\"AM Not Assigned\",AM_TO_REVIEW:\"AM To Review\",AM_REJECTED:\"AM Rejected\",AM_APPROVED:\"AM Approved\",DRAFT:\"Draft\"};const MINGLAR_STATUS_DISPLAY={NEW:\"New\",AM_NOT_ASSIGNED:\"AM Not Assigned\",TO_REVIEW:\"To Review\",ENHANCING:\"Enhancing\",APPROVED:\"Approved\",REJECTED:\"Rejected\",DRAFT:\"Draft\"};const MINGLAR_INVITATION_STATUS={PENDING:\"Pending\",ACCEPTED:\"Accepted\",REJECTED:\"Rejected\",INVITED:\"Invited\"};const HOST_SUGGESTION_TITLES={COMPANY_DETAILS:\"Complete Details\",COMPANY_DOCUMENTATION:\"Company documentataion\",COMPANY_SOCIAL_PROOF:\"Social Proof\",ACTIVITY_INFORMATION:\"Activity Information\",ACTIVITY_LOCATION:\"Activity Location\",PICKUP_DROP_LOCATION:\"Pickup-Drop Location\",NUMBER_OF_PEOPLE:\"Number of People\",INCLUSION:\"Inclusion\",TAX_SETUP:\"Tax Setup\",ENERGY_LEVEL:\"Energy Level\",ELIGIBILITY_CRITERIA:\"Eligibility Criteria\",AMENITIES:\"Amenities\",EXLUSIVE_NOTES:\"Exclusive Notes\",CANCELLATION_POLICY:\"Cancellation Policy\",DOs_AND_DONTs:\"Do\\u2019s and Dont\\u2019s\",TIPS_FOR_USERS:\"Tips for Users\",SUSTAINABILITY:\"Sustainability\",TERMS_AND_CONDITION_FOR_USER:\"Terms and Conditions for User\"};0&&(module.exports={HOST_SUGGESTION_TITLES,MINGLAR_INVITATION_STATUS,MINGLAR_STATUS_DISPLAY,MINGLAR_STATUS_INTERNAL});\n})()\n","warnings":[],"map":{"version":3,"mappings":";wpBAAA,2UAAO,MAAM,wBAA0B,CACrC,gBAAiB,kBACjB,eAAgB,iBAChB,gBAAiB,kBACjB,aAAc,eACd,YAAa,cACb,YAAa,cACb,MAAO,OACT,EAEO,MAAM,uBAAyB,CACpC,IAAK,MACL,gBAAiB,kBACjB,UAAW,YACX,UAAW,YACX,SAAU,WACV,SAAU,WACV,MAAO,OACT,EAEO,MAAM,0BAA4B,CACvC,QAAS,UACT,SAAU,WACV,SAAU,WACV,QAAS,SACX,EAEO,MAAM,uBAAyB,CACpC,gBAAiB,mBACjB,sBAAuB,yBACvB,qBAAsB,eACtB,qBAAsB,uBACtB,kBAAmB,oBACnB,qBAAsB,uBACtB,iBAAkB,mBAClB,UAAW,YACX,UAAW,YACX,aAAc,eACd,qBAAsB,uBACtB,UAAW,YACX,eAAgB,kBAChB,oBAAqB,sBACrB,cAAe,4BACf,eAAgB,iBAChB,eAAgB,iBAChB,6BAA8B,+BAChC","names":[],"ignoreList":[],"sources":["D:\\Minglar Backend NestJS\\src\\common\\utils\\constants\\minglar.constant.ts"],"sourcesContent":[null]}}
|
||||
File diff suppressed because one or more lines are too long
@@ -1 +0,0 @@
|
||||
{"code":"__filename=\"D:\\\\Minglar Backend NestJS\\\\src\\\\common\\\\database\\\\prisma.service.ts\";(()=>{\nvar __defProp=Object.defineProperty;var __getOwnPropDesc=Object.getOwnPropertyDescriptor;var __getOwnPropNames=Object.getOwnPropertyNames;var __hasOwnProp=Object.prototype.hasOwnProperty;var __name=(target,value)=>__defProp(target,\"name\",{value,configurable:true});var __export=(target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:true})};var __copyProps=(to,from,except,desc)=>{if(from&&typeof from===\"object\"||typeof from===\"function\"){for(let key of __getOwnPropNames(from))if(!__hasOwnProp.call(to,key)&&key!==except)__defProp(to,key,{get:()=>from[key],enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable})}return to};var __toCommonJS=mod=>__copyProps(__defProp({},\"__esModule\",{value:true}),mod);var __decorateClass=(decorators,target,key,kind)=>{var result=kind>1?void 0:kind?__getOwnPropDesc(target,key):target;for(var i=decorators.length-1,decorator;i>=0;i--)if(decorator=decorators[i])result=(kind?decorator(target,key,result):decorator(result))||result;if(kind&&result)__defProp(target,key,result);return result};var prisma_service_exports={};__export(prisma_service_exports,{PrismaService:()=>PrismaService});module.exports=__toCommonJS(prisma_service_exports);var import_common=require(\"@nestjs/common\");var import_client=require(\"@prisma/client\");var import_adapter_pg=require(\"@prisma/adapter-pg\");let PrismaService=class extends import_client.PrismaClient{constructor(){const adapter=new import_adapter_pg.PrismaPg({connectionString:process.env.DATABASE_URL});super({adapter,log:process.env.NODE_ENV===\"dev\"?[\"query\",\"info\",\"warn\",\"error\"]:[\"error\"]})}async onModuleInit(){await this.$connect()}async onModuleDestroy(){await this.$disconnect()}async enableShutdownHooks(app){process.on(\"beforeExit\",async()=>{await app.close()})}};__name(PrismaService,\"PrismaService\");PrismaService=__decorateClass([(0,import_common.Injectable)()],PrismaService);0&&(module.exports={PrismaService});\n})()\n","warnings":[],"map":{"version":3,"mappings":";wiCAAA,uKAA4E,0BAC5E,kBAA6B,0BAC7B,sBAAyB,8BAGlB,IAAM,cAAN,cAA4B,0BAAsD,CACvF,aAAc,CACZ,MAAM,QAAU,IAAI,2BAAS,CAAE,iBAAkB,QAAQ,IAAI,YAAa,CAAC,EAC3E,MAAM,CACJ,QACA,IAAK,QAAQ,IAAI,WAAa,MAAQ,CAAC,QAAS,OAAQ,OAAQ,OAAO,EAAI,CAAC,OAAO,CACrF,CAAC,CACH,CAEA,MAAM,cAAe,CACnB,MAAM,KAAK,SAAS,CACtB,CAEA,MAAM,iBAAkB,CACtB,MAAM,KAAK,YAAY,CACzB,CAEA,MAAM,oBAAoB,IAAuB,CAC/C,QAAQ,GAAG,aAAc,SAAY,CACnC,MAAM,IAAI,MAAM,CAClB,CAAC,CACH,CACF,EAtByF,sCAA5E,cAAN,oBADN,0BAAW,GACC","names":[],"ignoreList":[],"sources":["D:\\Minglar Backend NestJS\\src\\common\\database\\prisma.service.ts"],"sourcesContent":[null]}}
|
||||
@@ -1 +0,0 @@
|
||||
{"code":"__filename=\"D:\\\\Minglar Backend NestJS\\\\src\\\\common\\\\middlewares\\\\aws\\\\getPreSignedUrl.ts\";(()=>{\nvar __create=Object.create;var __defProp=Object.defineProperty;var __getOwnPropDesc=Object.getOwnPropertyDescriptor;var __getOwnPropNames=Object.getOwnPropertyNames;var __getProtoOf=Object.getPrototypeOf;var __hasOwnProp=Object.prototype.hasOwnProperty;var __name=(target,value)=>__defProp(target,\"name\",{value,configurable:true});var __export=(target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:true})};var __copyProps=(to,from,except,desc)=>{if(from&&typeof from===\"object\"||typeof from===\"function\"){for(let key of __getOwnPropNames(from))if(!__hasOwnProp.call(to,key)&&key!==except)__defProp(to,key,{get:()=>from[key],enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable})}return to};var __toESM=(mod,isNodeMode,target)=>(target=mod!=null?__create(__getProtoOf(mod)):{},__copyProps(isNodeMode||!mod||!mod.__esModule?__defProp(target,\"default\",{value:mod,enumerable:true}):target,mod));var __toCommonJS=mod=>__copyProps(__defProp({},\"__esModule\",{value:true}),mod);var getPreSignedUrl_exports={};__export(getPreSignedUrl_exports,{getPresignedUrl:()=>getPresignedUrl});module.exports=__toCommonJS(getPreSignedUrl_exports);var import_config=__toESM(require(\"@/config/config\"));var import_client_s3=require(\"@aws-sdk/client-s3\");var import_s3_request_presigner=require(\"@aws-sdk/s3-request-presigner\");const s3=new import_client_s3.S3Client({region:import_config.default.aws.region});const getPresignedUrl=__name(async(bucket,key)=>{const command=new import_client_s3.GetObjectCommand({Bucket:bucket,Key:key});return await(0,import_s3_request_presigner.getSignedUrl)(s3,command,{expiresIn:3600})},\"getPresignedUrl\");0&&(module.exports={getPresignedUrl});\n})()\n","warnings":[],"map":{"version":3,"mappings":";i/BAAA,4JACA,kBAAmB,oCACnB,qBAA2C,8BAC3C,gCAA6B,yCAE7B,MAAM,GAAK,IAAI,0BAAS,CACtB,OAAQ,cAAAA,QAAO,IAAI,MACrB,CAAC,EAEM,MAAM,gBAAkB,aAAO,OAAgB,MAAgB,CACpE,MAAM,QAAU,IAAI,kCAAiB,CACnC,OAAQ,OACR,IAAK,GACP,CAAC,EAGD,OAAO,QAAM,0CAAa,GAAI,QAAS,CAAE,UAAW,IAAK,CAAC,CAC5D,EAR+B","names":["config"],"ignoreList":[],"sources":["D:\\Minglar Backend NestJS\\src\\common\\middlewares\\aws\\getPreSignedUrl.ts"],"sourcesContent":[null]}}
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1 +0,0 @@
|
||||
{"code":"__filename=\"D:\\\\Minglar Backend NestJS\\\\src\\\\common\\\\database\\\\prisma.service.ts\";(()=>{\nvar __defProp=Object.defineProperty;var __getOwnPropDesc=Object.getOwnPropertyDescriptor;var __getOwnPropNames=Object.getOwnPropertyNames;var __hasOwnProp=Object.prototype.hasOwnProperty;var __name=(target,value)=>__defProp(target,\"name\",{value,configurable:true});var __export=(target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:true})};var __copyProps=(to,from,except,desc)=>{if(from&&typeof from===\"object\"||typeof from===\"function\"){for(let key of __getOwnPropNames(from))if(!__hasOwnProp.call(to,key)&&key!==except)__defProp(to,key,{get:()=>from[key],enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable})}return to};var __toCommonJS=mod=>__copyProps(__defProp({},\"__esModule\",{value:true}),mod);var __decorateClass=(decorators,target,key,kind)=>{var result=kind>1?void 0:kind?__getOwnPropDesc(target,key):target;for(var i=decorators.length-1,decorator;i>=0;i--)if(decorator=decorators[i])result=(kind?decorator(target,key,result):decorator(result))||result;if(kind&&result)__defProp(target,key,result);return result};var prisma_service_exports={};__export(prisma_service_exports,{PrismaService:()=>PrismaService});module.exports=__toCommonJS(prisma_service_exports);var import_common=require(\"@nestjs/common\");var import_client=require(\"@prisma/client\");var import_adapter_pg=require(\"@prisma/adapter-pg\");let PrismaService=class extends import_client.PrismaClient{constructor(){const adapter=new import_adapter_pg.PrismaPg({connectionString:process.env.DATABASE_URL});super({adapter,log:process.env.NODE_ENV===\"dev\"?[\"query\",\"info\",\"warn\",\"error\"]:[\"error\"]})}async onModuleInit(){await this.$connect()}async onModuleDestroy(){await this.$disconnect()}async enableShutdownHooks(app){process.on(\"beforeExit\",async()=>{await app.close()})}};__name(PrismaService,\"PrismaService\");PrismaService=__decorateClass([(0,import_common.Injectable)()],PrismaService);0&&(module.exports={PrismaService});\n})()\n","warnings":[],"map":{"version":3,"mappings":";wiCAAA,uKAA4E,0BAC5E,kBAA6B,0BAC7B,sBAAyB,8BAGlB,IAAM,cAAN,cAA4B,0BAAsD,CACvF,aAAc,CACZ,MAAM,QAAU,IAAI,2BAAS,CAAE,iBAAkB,QAAQ,IAAI,YAAa,CAAC,EAC3E,MAAM,CACJ,QACA,IAAK,QAAQ,IAAI,WAAa,MAAQ,CAAC,QAAS,OAAQ,OAAQ,OAAO,EAAI,CAAC,OAAO,CACrF,CAAC,CACH,CAEA,MAAM,cAAe,CACnB,MAAM,KAAK,SAAS,CACtB,CAEA,MAAM,iBAAkB,CACtB,MAAM,KAAK,YAAY,CACzB,CAEA,MAAM,oBAAoB,IAAuB,CAC/C,QAAQ,GAAG,aAAc,SAAY,CACnC,MAAM,IAAI,MAAM,CAClB,CAAC,CACH,CACF,EAtByF,sCAA5E,cAAN,oBADN,0BAAW,GACC","names":[],"ignoreList":[],"sources":["D:\\Minglar Backend NestJS\\src\\common\\database\\prisma.service.ts"],"sourcesContent":[null]}}
|
||||
@@ -1 +0,0 @@
|
||||
{"code":"__filename=\"D:\\\\Minglar Backend NestJS\\\\src\\\\modules\\\\minglaradmin\\\\services\\\\AMEmail.service.ts\";(()=>{\nvar __create=Object.create;var __defProp=Object.defineProperty;var __getOwnPropDesc=Object.getOwnPropertyDescriptor;var __getOwnPropNames=Object.getOwnPropertyNames;var __getProtoOf=Object.getPrototypeOf;var __hasOwnProp=Object.prototype.hasOwnProperty;var __name=(target,value)=>__defProp(target,\"name\",{value,configurable:true});var __export=(target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:true})};var __copyProps=(to,from,except,desc)=>{if(from&&typeof from===\"object\"||typeof from===\"function\"){for(let key of __getOwnPropNames(from))if(!__hasOwnProp.call(to,key)&&key!==except)__defProp(to,key,{get:()=>from[key],enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable})}return to};var __toESM=(mod,isNodeMode,target)=>(target=mod!=null?__create(__getProtoOf(mod)):{},__copyProps(isNodeMode||!mod||!mod.__esModule?__defProp(target,\"default\",{value:mod,enumerable:true}):target,mod));var __toCommonJS=mod=>__copyProps(__defProp({},\"__esModule\",{value:true}),mod);var AMEmail_service_exports={};__export(AMEmail_service_exports,{sendAMEmailForHostAssign:()=>sendAMEmailForHostAssign});module.exports=__toCommonJS(AMEmail_service_exports);var import_brevoApi=require(\"@/common/email/brevoApi\");var import_ApiError=__toESM(require(\"@/common/utils/helper/ApiError\"));async function sendAMEmailForHostAssign(emailAddress){const subject=\"Minglar Admin: Host Assignment Notification\";const htmlContent=`\n <p>Hi,</p>\n\n <p>You\\u2019ve been assigned the <strong>Host</strong> role by Minglar Admin.</p>\n\n <p>Best regards,<br/>Minglar Admin Team</p>\n `;try{const result=await import_brevoApi.brevoService.sendEmail({recipients:[{email:emailAddress}],subject,htmlContent});console.log(\"\\u{1F4E7} Email sent successfully:\",result);return{sent:true}}catch(err){console.error(\"Brevo email send failed:\",err);throw new import_ApiError.default(500,\"Failed to send invitation via email.\")}}__name(sendAMEmailForHostAssign,\"sendAMEmailForHostAssign\");0&&(module.exports={sendAMEmailForHostAssign});\n})()\n","warnings":[],"map":{"version":3,"mappings":";i/BAAA,8KACA,oBAA6B,mCAC7B,oBAAqB,mDAErB,eAAsB,yBAAyB,aAG5C,CACD,MAAM,QAAU,8CAEhB,MAAM,YAAc;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQpB,GAAI,CACF,MAAM,OAAS,MAAM,6BAAa,UAAU,CAC1C,WAAY,CAAC,CAAE,MAAO,YAAa,CAAC,EACpC,QACA,WACF,CAAC,EAED,QAAQ,IAAI,qCAA+B,MAAM,EAEjD,MAAO,CACL,KAAM,IAER,CACF,OAAS,IAAK,CACZ,QAAQ,MAAM,2BAA4B,GAAG,EAC7C,MAAM,IAAI,gBAAAA,QAAS,IAAK,sCAAsC,CAChE,CACF,CA/BsB","names":["ApiError"],"ignoreList":[],"sources":["D:\\Minglar Backend NestJS\\src\\modules\\minglaradmin\\services\\AMEmail.service.ts"],"sourcesContent":[null]}}
|
||||
@@ -1 +0,0 @@
|
||||
{"code":"__filename=\"D:\\\\Minglar Backend NestJS\\\\src\\\\common\\\\database\\\\prisma.client.ts\";(()=>{\nvar __defProp=Object.defineProperty;var __getOwnPropDesc=Object.getOwnPropertyDescriptor;var __getOwnPropNames=Object.getOwnPropertyNames;var __hasOwnProp=Object.prototype.hasOwnProperty;var __export=(target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:true})};var __copyProps=(to,from,except,desc)=>{if(from&&typeof from===\"object\"||typeof from===\"function\"){for(let key of __getOwnPropNames(from))if(!__hasOwnProp.call(to,key)&&key!==except)__defProp(to,key,{get:()=>from[key],enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable})}return to};var __toCommonJS=mod=>__copyProps(__defProp({},\"__esModule\",{value:true}),mod);var prisma_client_exports={};__export(prisma_client_exports,{prisma:()=>prisma});module.exports=__toCommonJS(prisma_client_exports);var import_client=require(\"@prisma/client\");var import_adapter_pg=require(\"@prisma/adapter-pg\");const adapter=new import_adapter_pg.PrismaPg({connectionString:process.env.DATABASE_URL});const prisma=new import_client.PrismaClient({adapter,log:process.env.NODE_ENV===\"dev\"?[\"query\",\"info\",\"warn\",\"error\"]:[\"error\"]});0&&(module.exports={prisma});\n})()\n","warnings":[],"map":{"version":3,"mappings":";wpBAAA,sJAA6B,0BAC7B,sBAAyB,8BAEzB,MAAM,QAAU,IAAI,2BAAS,CAAE,iBAAkB,QAAQ,IAAI,YAAa,CAAC,EAEpE,MAAM,OAAS,IAAI,2BAAa,CACrC,QACA,IAAK,QAAQ,IAAI,WAAa,MAAQ,CAAC,QAAS,OAAQ,OAAQ,OAAO,EAAI,CAAC,OAAO,CACrF,CAAC","names":[],"ignoreList":[],"sources":["D:\\Minglar Backend NestJS\\src\\common\\database\\prisma.client.ts"],"sourcesContent":[null]}}
|
||||
File diff suppressed because one or more lines are too long
@@ -1 +0,0 @@
|
||||
{"code":"__filename=\"D:\\\\Minglar Backend NestJS\\\\src\\\\common\\\\utils\\\\constants\\\\host.constant.ts\";(()=>{\nvar __defProp=Object.defineProperty;var __getOwnPropDesc=Object.getOwnPropertyDescriptor;var __getOwnPropNames=Object.getOwnPropertyNames;var __hasOwnProp=Object.prototype.hasOwnProperty;var __export=(target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:true})};var __copyProps=(to,from,except,desc)=>{if(from&&typeof from===\"object\"||typeof from===\"function\"){for(let key of __getOwnPropNames(from))if(!__hasOwnProp.call(to,key)&&key!==except)__defProp(to,key,{get:()=>from[key],enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable})}return to};var __toCommonJS=mod=>__copyProps(__defProp({},\"__esModule\",{value:true}),mod);var host_constant_exports={};__export(host_constant_exports,{ACTIVITY_AM_DISPLAY_STATUS:()=>ACTIVITY_AM_DISPLAY_STATUS,ACTIVITY_AM_INTERNAL_STATUS:()=>ACTIVITY_AM_INTERNAL_STATUS,ACTIVITY_DISPLAY_STATUS:()=>ACTIVITY_DISPLAY_STATUS,ACTIVITY_INTERNAL_STATUS:()=>ACTIVITY_INTERNAL_STATUS,HOST_STATUS_DISPLAY:()=>HOST_STATUS_DISPLAY,HOST_STATUS_INTERNAL:()=>HOST_STATUS_INTERNAL,LAST_QUESTION_ID:()=>LAST_QUESTION_ID,STEPPER:()=>STEPPER});module.exports=__toCommonJS(host_constant_exports);const HOST_STATUS_INTERNAL={HOST_SUBMITTED:\"Host Submitted\",HOST_TO_UPDATE:\"Host To Update\",REJECTED:\"Rejected\",APPROVED:\"Approved\",DRAFT:\"Draft\"};const HOST_STATUS_DISPLAY={DRAFT:\"Draft\",UNDER_REVIEW:\"Under Review\",ENHANCING:\"Enhancing\",REJECTED:\"Rejected\",APPROVED:\"Approved\"};const STEPPER={NOT_SUBMITTED:1,UNDER_REVIEW:2,COMPANY_DETAILS_APPROVED:3,BANK_DETAILS_UPDATED:4,AGREEMENT_ACCEPTED:5,REJECTED:6};const LAST_QUESTION_ID={Q_ID:55};const ACTIVITY_INTERNAL_STATUS={DRAFT_PQ:\"Draft - PQ\",APPROVED:\"Approved\",REJECTED:\"Rejected\",DRAFT:\"Draft\",UNDER_REVIEW:\"Under-Review\",PQQ_FAILED:\"PQQ Failed\",PQQ_TO_UPDATE:\"PQ To Update\",PQQ_SUBMITTED:\"PQ Submitted\"};const ACTIVITY_DISPLAY_STATUS={DRAFT_PQ:\"Draft - PQ\",APPROVED:\"Approved\",REJECTED:\"Rejected\",DRAFT:\"Draft\",UNDER_REVIEW:\"Under-Review\",PQQ_FAILED:\"PQQ Failed\",ENHANCING:\"Enchancing\",PQ_IN_REVIEW:\"PQ In Review\"};const ACTIVITY_AM_INTERNAL_STATUS={DRAFT_PQ:\"Draft - PQ\",APPROVED:\"Approved\",REJECTED:\"Rejected\",DRAFT:\"Draft\",UNDER_REVIEW:\"Under-Review\",PQQ_FAILED:\"PQQ Failed\",PQQ_REJECTED:\"PQ Rejected\",PQQ_TO_REVIEW:\"PQ To Review\"};const ACTIVITY_AM_DISPLAY_STATUS={DRAFT_PQ:\"Draft - PQ\",APPROVED:\"Approved\",REJECTED:\"Rejected\",DRAFT:\"Draft\",UNDER_REVIEW:\"Under-Review\",PQQ_FAILED:\"PQQ Failed\",ENHANCING:\"Enchancing\",NEW:\"New\"};0&&(module.exports={ACTIVITY_AM_DISPLAY_STATUS,ACTIVITY_AM_INTERNAL_STATUS,ACTIVITY_DISPLAY_STATUS,ACTIVITY_INTERNAL_STATUS,HOST_STATUS_DISPLAY,HOST_STATUS_INTERNAL,LAST_QUESTION_ID,STEPPER});\n})()\n","warnings":[],"map":{"version":3,"mappings":";wpBAAA,seAAO,MAAM,qBAAuB,CAChC,eAAgB,iBAChB,eAAgB,iBAChB,SAAU,WACV,SAAU,WACV,MAAO,OACX,EAEO,MAAM,oBAAsB,CAC/B,MAAO,QACP,aAAc,eACd,UAAW,YACX,SAAU,WACV,SAAU,UACd,EAEO,MAAM,QAAU,CACnB,cAAe,EACf,aAAc,EACd,yBAA0B,EAC1B,qBAAsB,EACtB,mBAAoB,EACpB,SAAU,CACd,EAEO,MAAM,iBAAmB,CAC5B,KAAM,EACV,EAEO,MAAM,yBAA2B,CACpC,SAAU,aACV,SAAU,WACV,SAAU,WACV,MAAO,QACP,aAAc,eACd,WAAY,aACZ,cAAe,eACf,cAAe,cACnB,EAEO,MAAM,wBAA0B,CACnC,SAAU,aACV,SAAU,WACV,SAAU,WACV,MAAO,QACP,aAAc,eACd,WAAY,aACZ,UAAW,aACX,aAAc,cAClB,EAEO,MAAM,4BAA8B,CACvC,SAAU,aACV,SAAU,WACV,SAAU,WACV,MAAO,QACP,aAAc,eACd,WAAY,aACZ,aAAc,cACd,cAAe,cACnB,EAEO,MAAM,2BAA6B,CACtC,SAAU,aACV,SAAU,WACV,SAAU,WACV,MAAO,QACP,aAAc,eACd,WAAY,aACZ,UAAW,aACX,IAAK,KACT","names":[],"ignoreList":[],"sources":["D:\\Minglar Backend NestJS\\src\\common\\utils\\constants\\host.constant.ts"],"sourcesContent":[null]}}
|
||||
File diff suppressed because one or more lines are too long
@@ -1 +0,0 @@
|
||||
{"code":"__filename=\"D:\\\\Minglar Backend NestJS\\\\src\\\\common\\\\utils\\\\constants\\\\minglar.constant.ts\";(()=>{\nvar __defProp=Object.defineProperty;var __getOwnPropDesc=Object.getOwnPropertyDescriptor;var __getOwnPropNames=Object.getOwnPropertyNames;var __hasOwnProp=Object.prototype.hasOwnProperty;var __export=(target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:true})};var __copyProps=(to,from,except,desc)=>{if(from&&typeof from===\"object\"||typeof from===\"function\"){for(let key of __getOwnPropNames(from))if(!__hasOwnProp.call(to,key)&&key!==except)__defProp(to,key,{get:()=>from[key],enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable})}return to};var __toCommonJS=mod=>__copyProps(__defProp({},\"__esModule\",{value:true}),mod);var minglar_constant_exports={};__export(minglar_constant_exports,{HOST_SUGGESTION_TITLES:()=>HOST_SUGGESTION_TITLES,MINGLAR_INVITATION_STATUS:()=>MINGLAR_INVITATION_STATUS,MINGLAR_STATUS_DISPLAY:()=>MINGLAR_STATUS_DISPLAY,MINGLAR_STATUS_INTERNAL:()=>MINGLAR_STATUS_INTERNAL});module.exports=__toCommonJS(minglar_constant_exports);const MINGLAR_STATUS_INTERNAL={ADMIN_TO_REVIEW:\"Admin To Review\",ADMIN_REJECTED:\"Admin Rejected\",AM_NOT_ASSIGNED:\"AM Not Assigned\",AM_TO_REVIEW:\"AM To Review\",AM_REJECTED:\"AM Rejected\",AM_APPROVED:\"AM Approved\",DRAFT:\"Draft\"};const MINGLAR_STATUS_DISPLAY={NEW:\"New\",AM_NOT_ASSIGNED:\"AM Not Assigned\",TO_REVIEW:\"To Review\",ENHANCING:\"Enhancing\",APPROVED:\"Approved\",REJECTED:\"Rejected\",DRAFT:\"Draft\"};const MINGLAR_INVITATION_STATUS={PENDING:\"Pending\",ACCEPTED:\"Accepted\",REJECTED:\"Rejected\",INVITED:\"Invited\"};const HOST_SUGGESTION_TITLES={COMPANY_DETAILS:\"Complete Details\",COMPANY_DOCUMENTATION:\"Company documentataion\",COMPANY_SOCIAL_PROOF:\"Social Proof\",ACTIVITY_INFORMATION:\"Activity Information\",ACTIVITY_LOCATION:\"Activity Location\",PICKUP_DROP_LOCATION:\"Pickup-Drop Location\",NUMBER_OF_PEOPLE:\"Number of People\",INCLUSION:\"Inclusion\",TAX_SETUP:\"Tax Setup\",ENERGY_LEVEL:\"Energy Level\",ELIGIBILITY_CRITERIA:\"Eligibility Criteria\",AMENITIES:\"Amenities\",EXLUSIVE_NOTES:\"Exclusive Notes\",CANCELLATION_POLICY:\"Cancellation Policy\",DOs_AND_DONTs:\"Do\\u2019s and Dont\\u2019s\",TIPS_FOR_USERS:\"Tips for Users\",SUSTAINABILITY:\"Sustainability\",TERMS_AND_CONDITION_FOR_USER:\"Terms and Conditions for User\"};0&&(module.exports={HOST_SUGGESTION_TITLES,MINGLAR_INVITATION_STATUS,MINGLAR_STATUS_DISPLAY,MINGLAR_STATUS_INTERNAL});\n})()\n","warnings":[],"map":{"version":3,"mappings":";wpBAAA,2UAAO,MAAM,wBAA0B,CACrC,gBAAiB,kBACjB,eAAgB,iBAChB,gBAAiB,kBACjB,aAAc,eACd,YAAa,cACb,YAAa,cACb,MAAO,OACT,EAEO,MAAM,uBAAyB,CACpC,IAAK,MACL,gBAAiB,kBACjB,UAAW,YACX,UAAW,YACX,SAAU,WACV,SAAU,WACV,MAAO,OACT,EAEO,MAAM,0BAA4B,CACvC,QAAS,UACT,SAAU,WACV,SAAU,WACV,QAAS,SACX,EAEO,MAAM,uBAAyB,CACpC,gBAAiB,mBACjB,sBAAuB,yBACvB,qBAAsB,eACtB,qBAAsB,uBACtB,kBAAmB,oBACnB,qBAAsB,uBACtB,iBAAkB,mBAClB,UAAW,YACX,UAAW,YACX,aAAc,eACd,qBAAsB,uBACtB,UAAW,YACX,eAAgB,kBAChB,oBAAqB,sBACrB,cAAe,4BACf,eAAgB,iBAChB,eAAgB,iBAChB,6BAA8B,+BAChC","names":[],"ignoreList":[],"sources":["D:\\Minglar Backend NestJS\\src\\common\\utils\\constants\\minglar.constant.ts"],"sourcesContent":[null]}}
|
||||
File diff suppressed because one or more lines are too long
@@ -1 +0,0 @@
|
||||
{"code":"__filename=\"D:\\\\Minglar Backend NestJS\\\\src\\\\common\\\\utils\\\\constants\\\\common.constant.ts\";(()=>{\nvar __defProp=Object.defineProperty;var __getOwnPropDesc=Object.getOwnPropertyDescriptor;var __getOwnPropNames=Object.getOwnPropertyNames;var __hasOwnProp=Object.prototype.hasOwnProperty;var __export=(target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:true})};var __copyProps=(to,from,except,desc)=>{if(from&&typeof from===\"object\"||typeof from===\"function\"){for(let key of __getOwnPropNames(from))if(!__hasOwnProp.call(to,key)&&key!==except)__defProp(to,key,{get:()=>from[key],enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable})}return to};var __toCommonJS=mod=>__copyProps(__defProp({},\"__esModule\",{value:true}),mod);var common_constant_exports={};__export(common_constant_exports,{ROLE:()=>ROLE,ROLE_NAME:()=>ROLE_NAME,USER_STATUS:()=>USER_STATUS});module.exports=__toCommonJS(common_constant_exports);const ROLE={MINGLAR_ADMIN:1,CO_ADMIN:2,ACCOUNT_MANAGER:3,HOST:4,OPERATOR:5,USER:6};const ROLE_NAME={MINGLAR_ADMIN:\"Minglar Admin\",CO_ADMIN:\"Co-admin\",ACCOUNT_MANAGER:\"Account manager\",HOST:\"Host\",OPERATOR:\"Operator\",USER:\"User\"};const USER_STATUS={INVITED:\"Invited\",ACTIVE:\"Active\",DE_ACTIVATED:\"De-activated\",REJECTED:\"Rejected\"};0&&(module.exports={ROLE,ROLE_NAME,USER_STATUS});\n})()\n","warnings":[],"map":{"version":3,"mappings":";wpBAAA,0LAAO,MAAM,KAAO,CAChB,cAAe,EACf,SAAU,EACV,gBAAiB,EACjB,KAAM,EACN,SAAU,EACV,KAAM,CACV,EAEO,MAAM,UAAY,CACrB,cAAe,gBACf,SAAU,WACV,gBAAiB,kBACjB,KAAM,OACN,SAAU,WACV,KAAM,MACV,EAEO,MAAM,YAAc,CACvB,QAAS,UACT,OAAQ,SACR,aAAc,eACd,SAAU,UACd","names":[],"ignoreList":[],"sources":["D:\\Minglar Backend NestJS\\src\\common\\utils\\constants\\common.constant.ts"],"sourcesContent":[null]}}
|
||||
File diff suppressed because one or more lines are too long
@@ -1 +0,0 @@
|
||||
{"code":"__filename=\"D:\\\\Minglar Backend NestJS\\\\src\\\\common\\\\database\\\\prisma.client.ts\";(()=>{\nvar __defProp=Object.defineProperty;var __getOwnPropDesc=Object.getOwnPropertyDescriptor;var __getOwnPropNames=Object.getOwnPropertyNames;var __hasOwnProp=Object.prototype.hasOwnProperty;var __export=(target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:true})};var __copyProps=(to,from,except,desc)=>{if(from&&typeof from===\"object\"||typeof from===\"function\"){for(let key of __getOwnPropNames(from))if(!__hasOwnProp.call(to,key)&&key!==except)__defProp(to,key,{get:()=>from[key],enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable})}return to};var __toCommonJS=mod=>__copyProps(__defProp({},\"__esModule\",{value:true}),mod);var prisma_client_exports={};__export(prisma_client_exports,{prisma:()=>prisma});module.exports=__toCommonJS(prisma_client_exports);var import_client=require(\"@prisma/client\");var import_adapter_pg=require(\"@prisma/adapter-pg\");const adapter=new import_adapter_pg.PrismaPg({connectionString:process.env.DATABASE_URL});const prisma=new import_client.PrismaClient({adapter,log:process.env.NODE_ENV===\"dev\"?[\"query\",\"info\",\"warn\",\"error\"]:[\"error\"]});0&&(module.exports={prisma});\n})()\n","warnings":[],"map":{"version":3,"mappings":";wpBAAA,sJAA6B,0BAC7B,sBAAyB,8BAEzB,MAAM,QAAU,IAAI,2BAAS,CAAE,iBAAkB,QAAQ,IAAI,YAAa,CAAC,EAEpE,MAAM,OAAS,IAAI,2BAAa,CACrC,QACA,IAAK,QAAQ,IAAI,WAAa,MAAQ,CAAC,QAAS,OAAQ,OAAQ,OAAO,EAAI,CAAC,OAAO,CACrF,CAAC","names":[],"ignoreList":[],"sources":["D:\\Minglar Backend NestJS\\src\\common\\database\\prisma.client.ts"],"sourcesContent":[null]}}
|
||||
@@ -1 +0,0 @@
|
||||
{"code":"__filename=\"D:\\\\Minglar Backend NestJS\\\\src\\\\common\\\\email\\\\brevoApi.ts\";(()=>{\nvar __create=Object.create;var __defProp=Object.defineProperty;var __getOwnPropDesc=Object.getOwnPropertyDescriptor;var __getOwnPropNames=Object.getOwnPropertyNames;var __getProtoOf=Object.getPrototypeOf;var __hasOwnProp=Object.prototype.hasOwnProperty;var __name=(target,value)=>__defProp(target,\"name\",{value,configurable:true});var __export=(target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:true})};var __copyProps=(to,from,except,desc)=>{if(from&&typeof from===\"object\"||typeof from===\"function\"){for(let key of __getOwnPropNames(from))if(!__hasOwnProp.call(to,key)&&key!==except)__defProp(to,key,{get:()=>from[key],enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable})}return to};var __toESM=(mod,isNodeMode,target)=>(target=mod!=null?__create(__getProtoOf(mod)):{},__copyProps(isNodeMode||!mod||!mod.__esModule?__defProp(target,\"default\",{value:mod,enumerable:true}):target,mod));var __toCommonJS=mod=>__copyProps(__defProp({},\"__esModule\",{value:true}),mod);var brevoApi_exports={};__export(brevoApi_exports,{brevoService:()=>brevoService});module.exports=__toCommonJS(brevoApi_exports);var import_axios=__toESM(require(\"axios\"));var import_config=__toESM(require(\"../../config/config\"));class BrevoService{static{__name(this,\"BrevoService\")}constructor(){this.instance=import_axios.default.create({baseURL:import_config.default.email.BrevobaseURL,headers:{\"api-key\":import_config.default.email.api_key,\"Content-Type\":\"application/json\"}})}async sendEmail(options){const response=await this.instance.post(\"/smtp/email\",{sender:{name:\"Minglar\",email:\"minglar.admin@minglargroup.com\"},to:options.recipients,subject:options.subject,htmlContent:options.htmlContent,replyTo:{email:\"minglar.admin@minglargroup.com\"}});return response.data}}const brevoService=new BrevoService;0&&(module.exports={brevoService});\n})()\n","warnings":[],"map":{"version":3,"mappings":";i/BAAA,kJAAqC,0BACrC,kBAAmB,wCAanB,MAAM,YAAa,CAdnB,MAcmB,6BAGjB,aAAc,CACZ,KAAK,SAAW,aAAAA,QAAM,OAAO,CAC3B,QAAS,cAAAC,QAAO,MAAM,aACtB,QAAS,CACP,UAAW,cAAAA,QAAO,MAAM,QACxB,eAAgB,kBAClB,CACF,CAAC,CACH,CAEA,MAAM,UAAU,QAAuD,CACrE,MAAM,SAAW,MAAM,KAAK,SAAS,KAAK,cAAe,CACvD,OAAQ,CACN,KAAM,UACN,MAAO,gCACT,EACA,GAAI,QAAQ,WACZ,QAAS,QAAQ,QACjB,YAAa,QAAQ,YACrB,QAAS,CACP,MAAO,gCACT,CACF,CAAC,EAED,OAAO,SAAS,IAClB,CACF,CAEO,MAAM,aAAe,IAAI","names":["axios","config"],"ignoreList":[],"sources":["D:\\Minglar Backend NestJS\\src\\common\\email\\brevoApi.ts"],"sourcesContent":[null]}}
|
||||
File diff suppressed because one or more lines are too long
@@ -1 +0,0 @@
|
||||
{"code":"__filename=\"D:\\\\Minglar Backend NestJS\\\\src\\\\common\\\\email\\\\brevoApi.ts\";(()=>{\nvar __create=Object.create;var __defProp=Object.defineProperty;var __getOwnPropDesc=Object.getOwnPropertyDescriptor;var __getOwnPropNames=Object.getOwnPropertyNames;var __getProtoOf=Object.getPrototypeOf;var __hasOwnProp=Object.prototype.hasOwnProperty;var __name=(target,value)=>__defProp(target,\"name\",{value,configurable:true});var __export=(target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:true})};var __copyProps=(to,from,except,desc)=>{if(from&&typeof from===\"object\"||typeof from===\"function\"){for(let key of __getOwnPropNames(from))if(!__hasOwnProp.call(to,key)&&key!==except)__defProp(to,key,{get:()=>from[key],enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable})}return to};var __toESM=(mod,isNodeMode,target)=>(target=mod!=null?__create(__getProtoOf(mod)):{},__copyProps(isNodeMode||!mod||!mod.__esModule?__defProp(target,\"default\",{value:mod,enumerable:true}):target,mod));var __toCommonJS=mod=>__copyProps(__defProp({},\"__esModule\",{value:true}),mod);var brevoApi_exports={};__export(brevoApi_exports,{brevoService:()=>brevoService});module.exports=__toCommonJS(brevoApi_exports);var import_axios=__toESM(require(\"axios\"));var import_config=__toESM(require(\"../../config/config\"));class BrevoService{static{__name(this,\"BrevoService\")}constructor(){this.instance=import_axios.default.create({baseURL:import_config.default.email.BrevobaseURL,headers:{\"api-key\":import_config.default.email.api_key,\"Content-Type\":\"application/json\"}})}async sendEmail(options){const response=await this.instance.post(\"/smtp/email\",{sender:{name:\"Minglar\",email:\"minglar.admin@minglargroup.com\"},to:options.recipients,subject:options.subject,htmlContent:options.htmlContent,replyTo:{email:\"minglar.admin@minglargroup.com\"}});return response.data}}const brevoService=new BrevoService;0&&(module.exports={brevoService});\n})()\n","warnings":[],"map":{"version":3,"mappings":";i/BAAA,kJAAqC,0BACrC,kBAAmB,wCAanB,MAAM,YAAa,CAdnB,MAcmB,6BAGjB,aAAc,CACZ,KAAK,SAAW,aAAAA,QAAM,OAAO,CAC3B,QAAS,cAAAC,QAAO,MAAM,aACtB,QAAS,CACP,UAAW,cAAAA,QAAO,MAAM,QACxB,eAAgB,kBAClB,CACF,CAAC,CACH,CAEA,MAAM,UAAU,QAAuD,CACrE,MAAM,SAAW,MAAM,KAAK,SAAS,KAAK,cAAe,CACvD,OAAQ,CACN,KAAM,UACN,MAAO,gCACT,EACA,GAAI,QAAQ,WACZ,QAAS,QAAQ,QACjB,YAAa,QAAQ,YACrB,QAAS,CACP,MAAO,gCACT,CACF,CAAC,EAED,OAAO,SAAS,IAClB,CACF,CAEO,MAAM,aAAe,IAAI","names":["axios","config"],"ignoreList":[],"sources":["D:\\Minglar Backend NestJS\\src\\common\\email\\brevoApi.ts"],"sourcesContent":[null]}}
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1 +0,0 @@
|
||||
{"code":"__filename=\"D:\\\\Minglar Backend NestJS\\\\src\\\\common\\\\utils\\\\constants\\\\common.constant.ts\";(()=>{\nvar __defProp=Object.defineProperty;var __getOwnPropDesc=Object.getOwnPropertyDescriptor;var __getOwnPropNames=Object.getOwnPropertyNames;var __hasOwnProp=Object.prototype.hasOwnProperty;var __export=(target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:true})};var __copyProps=(to,from,except,desc)=>{if(from&&typeof from===\"object\"||typeof from===\"function\"){for(let key of __getOwnPropNames(from))if(!__hasOwnProp.call(to,key)&&key!==except)__defProp(to,key,{get:()=>from[key],enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable})}return to};var __toCommonJS=mod=>__copyProps(__defProp({},\"__esModule\",{value:true}),mod);var common_constant_exports={};__export(common_constant_exports,{ROLE:()=>ROLE,ROLE_NAME:()=>ROLE_NAME,USER_STATUS:()=>USER_STATUS});module.exports=__toCommonJS(common_constant_exports);const ROLE={MINGLAR_ADMIN:1,CO_ADMIN:2,ACCOUNT_MANAGER:3,HOST:4,OPERATOR:5,USER:6};const ROLE_NAME={MINGLAR_ADMIN:\"Minglar Admin\",CO_ADMIN:\"Co-admin\",ACCOUNT_MANAGER:\"Account manager\",HOST:\"Host\",OPERATOR:\"Operator\",USER:\"User\"};const USER_STATUS={INVITED:\"Invited\",ACTIVE:\"Active\",DE_ACTIVATED:\"De-activated\",REJECTED:\"Rejected\"};0&&(module.exports={ROLE,ROLE_NAME,USER_STATUS});\n})()\n","warnings":[],"map":{"version":3,"mappings":";wpBAAA,0LAAO,MAAM,KAAO,CAChB,cAAe,EACf,SAAU,EACV,gBAAiB,EACjB,KAAM,EACN,SAAU,EACV,KAAM,CACV,EAEO,MAAM,UAAY,CACrB,cAAe,gBACf,SAAU,WACV,gBAAiB,kBACjB,KAAM,OACN,SAAU,WACV,KAAM,MACV,EAEO,MAAM,YAAc,CACvB,QAAS,UACT,OAAQ,SACR,aAAc,eACd,SAAU,UACd","names":[],"ignoreList":[],"sources":["D:\\Minglar Backend NestJS\\src\\common\\utils\\constants\\common.constant.ts"],"sourcesContent":[null]}}
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1 +0,0 @@
|
||||
{"code":"__filename=\"D:\\\\Minglar Backend NestJS\\\\src\\\\common\\\\utils\\\\constants\\\\minglar.constant.ts\";(()=>{\nvar __defProp=Object.defineProperty;var __getOwnPropDesc=Object.getOwnPropertyDescriptor;var __getOwnPropNames=Object.getOwnPropertyNames;var __hasOwnProp=Object.prototype.hasOwnProperty;var __export=(target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:true})};var __copyProps=(to,from,except,desc)=>{if(from&&typeof from===\"object\"||typeof from===\"function\"){for(let key of __getOwnPropNames(from))if(!__hasOwnProp.call(to,key)&&key!==except)__defProp(to,key,{get:()=>from[key],enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable})}return to};var __toCommonJS=mod=>__copyProps(__defProp({},\"__esModule\",{value:true}),mod);var minglar_constant_exports={};__export(minglar_constant_exports,{HOST_SUGGESTION_TITLES:()=>HOST_SUGGESTION_TITLES,MINGLAR_INVITATION_STATUS:()=>MINGLAR_INVITATION_STATUS,MINGLAR_STATUS_DISPLAY:()=>MINGLAR_STATUS_DISPLAY,MINGLAR_STATUS_INTERNAL:()=>MINGLAR_STATUS_INTERNAL});module.exports=__toCommonJS(minglar_constant_exports);const MINGLAR_STATUS_INTERNAL={ADMIN_TO_REVIEW:\"Admin To Review\",ADMIN_REJECTED:\"Admin Rejected\",AM_NOT_ASSIGNED:\"AM Not Assigned\",AM_TO_REVIEW:\"AM To Review\",AM_REJECTED:\"AM Rejected\",AM_APPROVED:\"AM Approved\",DRAFT:\"Draft\"};const MINGLAR_STATUS_DISPLAY={NEW:\"New\",AM_NOT_ASSIGNED:\"AM Not Assigned\",TO_REVIEW:\"To Review\",ENHANCING:\"Enhancing\",APPROVED:\"Approved\",REJECTED:\"Rejected\",DRAFT:\"Draft\"};const MINGLAR_INVITATION_STATUS={PENDING:\"Pending\",ACCEPTED:\"Accepted\",REJECTED:\"Rejected\",INVITED:\"Invited\"};const HOST_SUGGESTION_TITLES={COMPANY_DETAILS:\"Complete Details\",COMPANY_DOCUMENTATION:\"Company documentataion\",COMPANY_SOCIAL_PROOF:\"Social Proof\",ACTIVITY_INFORMATION:\"Activity Information\",ACTIVITY_LOCATION:\"Activity Location\",PICKUP_DROP_LOCATION:\"Pickup-Drop Location\",NUMBER_OF_PEOPLE:\"Number of People\",INCLUSION:\"Inclusion\",TAX_SETUP:\"Tax Setup\",ENERGY_LEVEL:\"Energy Level\",ELIGIBILITY_CRITERIA:\"Eligibility Criteria\",AMENITIES:\"Amenities\",EXLUSIVE_NOTES:\"Exclusive Notes\",CANCELLATION_POLICY:\"Cancellation Policy\",DOs_AND_DONTs:\"Do\\u2019s and Dont\\u2019s\",TIPS_FOR_USERS:\"Tips for Users\",SUSTAINABILITY:\"Sustainability\",TERMS_AND_CONDITION_FOR_USER:\"Terms and Conditions for User\"};0&&(module.exports={HOST_SUGGESTION_TITLES,MINGLAR_INVITATION_STATUS,MINGLAR_STATUS_DISPLAY,MINGLAR_STATUS_INTERNAL});\n})()\n","warnings":[],"map":{"version":3,"mappings":";wpBAAA,2UAAO,MAAM,wBAA0B,CACrC,gBAAiB,kBACjB,eAAgB,iBAChB,gBAAiB,kBACjB,aAAc,eACd,YAAa,cACb,YAAa,cACb,MAAO,OACT,EAEO,MAAM,uBAAyB,CACpC,IAAK,MACL,gBAAiB,kBACjB,UAAW,YACX,UAAW,YACX,SAAU,WACV,SAAU,WACV,MAAO,OACT,EAEO,MAAM,0BAA4B,CACvC,QAAS,UACT,SAAU,WACV,SAAU,WACV,QAAS,SACX,EAEO,MAAM,uBAAyB,CACpC,gBAAiB,mBACjB,sBAAuB,yBACvB,qBAAsB,eACtB,qBAAsB,uBACtB,kBAAmB,oBACnB,qBAAsB,uBACtB,iBAAkB,mBAClB,UAAW,YACX,UAAW,YACX,aAAc,eACd,qBAAsB,uBACtB,UAAW,YACX,eAAgB,kBAChB,oBAAqB,sBACrB,cAAe,4BACf,eAAgB,iBAChB,eAAgB,iBAChB,6BAA8B,+BAChC","names":[],"ignoreList":[],"sources":["D:\\Minglar Backend NestJS\\src\\common\\utils\\constants\\minglar.constant.ts"],"sourcesContent":[null]}}
|
||||
@@ -1 +0,0 @@
|
||||
{"code":"__filename=\"D:\\\\Minglar Backend NestJS\\\\src\\\\common\\\\database\\\\prisma.service.ts\";(()=>{\nvar __defProp=Object.defineProperty;var __getOwnPropDesc=Object.getOwnPropertyDescriptor;var __getOwnPropNames=Object.getOwnPropertyNames;var __hasOwnProp=Object.prototype.hasOwnProperty;var __name=(target,value)=>__defProp(target,\"name\",{value,configurable:true});var __export=(target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:true})};var __copyProps=(to,from,except,desc)=>{if(from&&typeof from===\"object\"||typeof from===\"function\"){for(let key of __getOwnPropNames(from))if(!__hasOwnProp.call(to,key)&&key!==except)__defProp(to,key,{get:()=>from[key],enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable})}return to};var __toCommonJS=mod=>__copyProps(__defProp({},\"__esModule\",{value:true}),mod);var __decorateClass=(decorators,target,key,kind)=>{var result=kind>1?void 0:kind?__getOwnPropDesc(target,key):target;for(var i=decorators.length-1,decorator;i>=0;i--)if(decorator=decorators[i])result=(kind?decorator(target,key,result):decorator(result))||result;if(kind&&result)__defProp(target,key,result);return result};var prisma_service_exports={};__export(prisma_service_exports,{PrismaService:()=>PrismaService});module.exports=__toCommonJS(prisma_service_exports);var import_common=require(\"@nestjs/common\");var import_client=require(\"@prisma/client\");var import_adapter_pg=require(\"@prisma/adapter-pg\");let PrismaService=class extends import_client.PrismaClient{constructor(){const adapter=new import_adapter_pg.PrismaPg({connectionString:process.env.DATABASE_URL});super({adapter,log:process.env.NODE_ENV===\"dev\"?[\"query\",\"info\",\"warn\",\"error\"]:[\"error\"]})}async onModuleInit(){await this.$connect()}async onModuleDestroy(){await this.$disconnect()}async enableShutdownHooks(app){process.on(\"beforeExit\",async()=>{await app.close()})}};__name(PrismaService,\"PrismaService\");PrismaService=__decorateClass([(0,import_common.Injectable)()],PrismaService);0&&(module.exports={PrismaService});\n})()\n","warnings":[],"map":{"version":3,"mappings":";wiCAAA,uKAA4E,0BAC5E,kBAA6B,0BAC7B,sBAAyB,8BAGlB,IAAM,cAAN,cAA4B,0BAAsD,CACvF,aAAc,CACZ,MAAM,QAAU,IAAI,2BAAS,CAAE,iBAAkB,QAAQ,IAAI,YAAa,CAAC,EAC3E,MAAM,CACJ,QACA,IAAK,QAAQ,IAAI,WAAa,MAAQ,CAAC,QAAS,OAAQ,OAAQ,OAAO,EAAI,CAAC,OAAO,CACrF,CAAC,CACH,CAEA,MAAM,cAAe,CACnB,MAAM,KAAK,SAAS,CACtB,CAEA,MAAM,iBAAkB,CACtB,MAAM,KAAK,YAAY,CACzB,CAEA,MAAM,oBAAoB,IAAuB,CAC/C,QAAQ,GAAG,aAAc,SAAY,CACnC,MAAM,IAAI,MAAM,CAClB,CAAC,CACH,CACF,EAtByF,sCAA5E,cAAN,oBADN,0BAAW,GACC","names":[],"ignoreList":[],"sources":["D:\\Minglar Backend NestJS\\src\\common\\database\\prisma.service.ts"],"sourcesContent":[null]}}
|
||||
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user