added the dataconsent flags
This commit is contained in:
@@ -4,13 +4,9 @@ import { prismaClient } from '../../../../../common/database/prisma.lambda.servi
|
||||
import { ROLE } from '../../../../../common/utils/constants/common.constant';
|
||||
import { safeHandler } from '../../../../../common/utils/handlers/safeHandler';
|
||||
import ApiError from '../../../../../common/utils/helper/ApiError';
|
||||
import { encryptUserId } from '../../../../../common/utils/helper/CodeGenerator';
|
||||
import { OtpGeneratorSixDigit } from '../../../../../common/utils/helper/OtpGenerator';
|
||||
import { HostService } from '../../../services/host.service';
|
||||
import { sendOtpEmailForHost } from '@/modules/host/services/sendOTPEmail.service';
|
||||
|
||||
const hostService = new HostService(prismaClient);
|
||||
|
||||
export async function generateHostRefNumber(tx: any) {
|
||||
const lastrecord = await tx.user.findFirst({
|
||||
orderBy: {
|
||||
@@ -45,13 +41,23 @@ export const handler = safeHandler(async (
|
||||
throw new ApiError(400, 'Email is required');
|
||||
}
|
||||
|
||||
const emailToLowerCase = email.toLowerCase()
|
||||
const emailToLowerCase = email.trim().toLowerCase();
|
||||
|
||||
if (!emailToLowerCase) {
|
||||
throw new ApiError(400, 'Email is required');
|
||||
}
|
||||
|
||||
// Use a single transaction for user creation/lookup and OTP storage
|
||||
const transactionResult = await prismaClient.$transaction(async (tx) => {
|
||||
const user = await tx.user.findUnique({
|
||||
where: { emailAddress: emailToLowerCase },
|
||||
select: { emailAddress: true, id: true, userPassword: true },
|
||||
select: {
|
||||
emailAddress: true,
|
||||
id: true,
|
||||
userPassword: true,
|
||||
dataConsentAccepted: true,
|
||||
dataConsentAcceptedOn: true,
|
||||
},
|
||||
});
|
||||
|
||||
if (user && user.userPassword) {
|
||||
@@ -93,9 +99,18 @@ export const handler = safeHandler(async (
|
||||
},
|
||||
});
|
||||
|
||||
const encryptedId = encryptUserId(String(newUserLocal.id));
|
||||
await tx.user.update({
|
||||
where: { id: Number(newUserLocal.id) },
|
||||
data: {
|
||||
dataConsentAccepted: true,
|
||||
dataConsentAcceptedOn:
|
||||
user?.dataConsentAccepted && user?.dataConsentAcceptedOn
|
||||
? user.dataConsentAcceptedOn
|
||||
: new Date(),
|
||||
},
|
||||
});
|
||||
|
||||
return { newUser: newUserLocal, otp, encryptedId };
|
||||
return { newUser: newUserLocal, otp };
|
||||
});
|
||||
|
||||
if (!transactionResult || !transactionResult.otp) {
|
||||
|
||||
Reference in New Issue
Block a user