ÿØÿà JFIF H H ÿÛ C GIF89;
| System: Linux srv913213 5.15.0-190-generic #200-Ubuntu SMP Fri Aug 7 15:06:04 UTC 2026 x86_64 Current Path : /var/www/talentgenesis_admin_backend/src/helpers/validation/ |
| Current File : /var/www/talentgenesis_admin_backend/src/helpers/validation/key-validation.ts |
import { Injectable } from '@nestjs/common';
import * as CryptoJS from 'crypto-js';
import { createHash, Cipher, createCipheriv, createDecipheriv, createHmac } from 'crypto';
@Injectable()
export class KeyValidation {
entityOnevalidation({ entityTypeId, companyName, emailDec, mobileDec, mobileNoVerify, panNoDec,
panNoVerify, aadharNoDec, aadharNoVerify, gstNoDec, gstNoVerify, address, stateId, cityId, pinCode,
partnerOneContactPersonName,
partnerOneMobileNoDec,
partnerOneMobileNoVerify,
partnerOneAlternateMobileNoDec,
partnerOneEmailIdDec,
partnerOnePanNoDec,
partnerOnePanNoVerify,
partnerOneAadharNoDec,
partnerOneAadharNoVerify,
partnerTwoContactPersonName,
partnerTwoMobileNoDec,
partnerTwoMobileNoVerify,
partnerTwoAlternateMobileNoDec,
partnerTwoEmailIdDec,
partnerTwoPanNoDec,
partnerTwoPanNoVerify,
partnerTwoAadharNoDec,
partnerTwoAadharNoVerify
}) {
const fields = {
'companyName': companyName,
'email': emailDec,
'mobileNo': mobileDec,
'mobileNoVerify': mobileNoVerify,
'panNo': panNoDec,
'panNoVerify': panNoVerify,
'aadharNo': aadharNoDec,
'aadharNoVerify': aadharNoVerify,
'gstNo': gstNoDec,
'gstNoVerify': gstNoVerify,
'address': address,
'stateId': stateId,
'cityId': cityId,
'pinCode': pinCode,
'partnerOneContactPersonName': partnerOneContactPersonName,
'partnerOneMobileNo': partnerOneMobileNoDec,
'partnerOneMobileNoVerify': partnerOneMobileNoVerify,
'partnerOneEmailId': partnerOneEmailIdDec,
'partnerOnePanNo': partnerOnePanNoDec,
'partnerOnePanNoVerify': partnerOnePanNoVerify,
'partnerOneAadharNo': partnerOneAadharNoDec,
'partnerOneAadharNoVerify': partnerOneAadharNoVerify,
'partnerTwoContactPersonName': partnerTwoContactPersonName,
'partnerTwoMobileNo': partnerTwoMobileNoDec,
'partnerTwoMobileNoVerify': partnerTwoMobileNoVerify,
'partnerTwoEmailId': partnerTwoEmailIdDec,
'partnerTwoPanNo': partnerTwoPanNoDec,
'partnerTwoPanNoVerify': partnerTwoPanNoVerify,
'partnerTwoAadharNo': partnerTwoAadharNoDec,
'partnerTwoAadharNoVerify': partnerTwoAadharNoVerify,
'partnerOneAlternateMobileNo': partnerOneAlternateMobileNoDec,
'partnerTwoAlternateMobileNo': partnerTwoAlternateMobileNoDec,
};
const errors = [];
const uniqueEmails = {};
const uniqueMobileNos = {};
const uniquePANs = {};
const uniqueAadharNos = {};
for (const [field, value] of Object.entries(fields)) {
if (value === undefined || value === null || value === '') {
if (field === 'partnerOneAlternateMobileNo' || field === 'partnerTwoAlternateMobileNo') {
// If the field is optional and not provided, continue to the next field
continue;
}
errors.push(`${field} cannot be empty`);
} else if (field === 'email' || field === 'partnerOneEmailId' || field === 'partnerTwoEmailId') {
if (!isValidEmail(value)) {
errors.push(`Please enter a valid email address for ${field}`);
} else if (uniqueEmails[value]) {
errors.push(`${field} ${value} must be unique`);
} else {
uniqueEmails[value] = true;
}
} else if (field === 'mobileNo' || field === 'partnerOneMobileNo' || field === 'partnerTwoMobileNo' ||
field === 'partnerOneAlternateMobileNo' || field === 'partnerTwoAlternateMobileNo') {
if (!isValidMobile(value)) {
errors.push(`Please enter a valid mobile number for ${field}`);
} else if (uniqueMobileNos[value]) {
errors.push(`${field} number ${value} must be unique`);
} else {
uniqueMobileNos[value] = true;
}
} else if (field === 'panNo' || field === 'partnerOnePanNo' || field === 'partnerTwoPanNo') {
if (uniquePANs[value]) {
errors.push(`${field} number ${value} must be unique`);
} else {
uniquePANs[value] = true;
}
} else if (field === 'aadharNo' || field === 'partnerOneAadharNo' || field === 'partnerTwoAadharNo') {
if (uniqueAadharNos[value]) {
errors.push(`${field} ${value} must be unique`);
} else {
uniqueAadharNos[value] = true;
}
}
}
if (errors.length > 0) {
return {
success: false,
errors: errors
};
} else {
return {
success: true,
message: 'Validation successful'
};
}
}
entityTwovalidation({ entityTypeId, companyName, contactPersonalName, yearOfGap, emailDec, mobileDec, mobileNoVerify, alterateMobileNoDec, panNoDec,
panNoVerify, aadharNoDec, aadharNoVerify, gstNoDec, gstNoVerify, address, stateId, cityId, pinCode
}) {
const fields = {
'companyName': companyName,
'contactPersonalName': contactPersonalName,
'yearOfGap': yearOfGap,
'email': emailDec,
'mobileNo': mobileDec,
'mobileNoVerify': mobileNoVerify,
'alterateMobileNo': alterateMobileNoDec,
'panNo': panNoDec,
'panNoVerify': panNoVerify,
'aadharNo': aadharNoDec,
'aadharNoVerify': aadharNoVerify,
'gstNo': gstNoDec,
'gstNoVerify': gstNoVerify,
'address': address,
'stateId': stateId,
'cityId': cityId,
'pinCode': pinCode,
};
// const errors = [];
// for (const [field, value] of Object.entries(fields)) {
// if (!value) {
// errors.push(`${field} cannot be empty`);
// } else if (field === 'email') {
// const emailRegex = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/;
// if (!emailRegex.test(value)) {
// errors.push('Please enter a valid email address');
// }
// }else if(field==='mobileNo'){
// const mobileRegex =/^(?:(?:\+|0{0,2})91(\s*[\-]\s*)?|[0]?)?[7896]\d{9}$/;
// if (!mobileRegex.test(value)) {
// errors.push('Please enter a valid mobile number');
// }
// }else if (field === 'partnerOneEmailId') {
// const emailRegex = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/;
// if (!emailRegex.test(value)) {
// errors.push('Please enter a valid email address');
// }
// }else if(field==='partnerOneMobileNo'){
// const mobileRegex =/^(?:(?:\+|0{0,2})91(\s*[\-]\s*)?|[0]?)?[7896]\d{9}$/;
// if (!mobileRegex.test(value)) {
// errors.push('Please enter a valid mobile number');
// }
// }else if (field === 'partnerTwoEmailId') {
// const emailRegex = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/;
// if (!emailRegex.test(value)) {
// errors.push('Please enter a valid email address');
// }
// }else if(field==='partnerTwoMobileNo'){
// const mobileRegex =/^(?:(?:\+|0{0,2})91(\s*[\-]\s*)?|[0]?)?[7896]\d{9}$/;
// if (!mobileRegex.test(value)) {
// errors.push('Please enter a valid mobile number');
// }
// }
// }
// if (errors.length > 0) {
// return {
// success: false,
// errors: errors
// };
// } else {
// return {
// success: true,
// message: 'Validation successful'
// };
// }
// }
const errors = [];
const uniqueMobileNos = {};
for (const [field, value] of Object.entries(fields)) {
if (value === undefined || value === null || value === '') {
if (field === 'alterateMobileNo') {
// If the field is optional and not provided, continue to the next field
continue;
}
errors.push(`${field} cannot be empty`);
} else if (field === 'email') {
if (!isValidEmail(value)) {
errors.push(`Please enter a valid email address for ${field}`);
}
} else if (field === 'mobileNo' || field === 'alterateMobileNo') {
if (!isValidMobile(value)) {
errors.push(`Please enter a valid mobile number for ${field}`);
} else if (uniqueMobileNos[value]) {
errors.push(`${field} number ${value} must be unique`);
} else {
uniqueMobileNos[value] = true;
}
}
}
if (errors.length > 0) {
return {
success: false,
errors: errors
};
} else {
return {
success: true,
message: 'Validation successful'
};
}
}
savingsAccOnevalidation({ firstName,lastName,emailDec,mobileDec,altMobileNoDec,panNoDec,addressLine1,stateId,cityId,pinCode
}) {
const fields = {
'firstName':firstName,
'lastName':lastName,
'email': emailDec,
'mobileNo': mobileDec,
'altMobileNoDec': altMobileNoDec,
'panNoDec':panNoDec,
'addressLine1':addressLine1,
'stateId': stateId,
'cityId': cityId,
'pinCode': pinCode,
};
const errors = [];
const uniqueEmails = {};
const uniqueMobileNos = {};
for (const [field, value] of Object.entries(fields)) {
if (value === undefined || value === null || value === '') {
if (field === 'altMobileNoDec') {
// If the field is optional and not provided, continue to the next field
continue;
}
errors.push(`${field} cannot be empty`);
} else if (field === 'email' ) {
if (!isValidEmail(value)) {
errors.push(`Please enter a valid email address for ${field}`);
} else if (uniqueEmails[value]) {
errors.push(`${field} ${value} must be unique`);
} else {
uniqueEmails[value] = true;
}
} else if (field === 'mobileNo' || field === 'altMobileNoDec') {
if (!isValidMobile(value)) {
errors.push(`Please enter a valid mobile number for ${field}`);
} else if (uniqueMobileNos[value]) {
errors.push(`${field} number ${value} must be unique`);
} else {
uniqueMobileNos[value] = true;
}
}
}
if (errors.length > 0) {
return {
success: false,
errors: errors
};
} else {
return {
success: true,
message: 'Validation successful'
};
}
}
savingsAccTwovalidation({ firstName,lastName,emailDec,mobileDec,altMobileNoDec,panNoDec,addressLine1,stateId,cityId,pinCode,
maritalStatus,fatherSpouseName,employeeType,incomePerMonth,
nomineeFirstName,nomineeLastName,nomineeEmailDec,nomineeMobileDec,nomineeAltMobileNoDec,nomineeAddressLine1,
nomineeStateId,nomineeCityId,nomineePinCode
}) {
const fields = {
'firstName':firstName,
'lastName':lastName,
'email': emailDec,
'mobileNo': mobileDec,
'altMobileNoDec': altMobileNoDec,
'panNoDec':panNoDec,
'addressLine1':addressLine1,
'stateId': stateId,
'cityId': cityId,
'pinCode': pinCode,
'maritalStatus': maritalStatus,
'fatherSpouseName': fatherSpouseName,
'employeeType': employeeType,
'incomePerMonth': incomePerMonth,
'nomineeFirstName':nomineeFirstName,
'nomineeLastName':nomineeLastName,
'nomineeEmailDec': nomineeEmailDec,
'nomineeMobileDec': nomineeMobileDec,
'nomineeAltMobileNoDec': nomineeAltMobileNoDec,
'nomineeAddressLine1':nomineeAddressLine1,
'nomineeStateId': nomineeStateId,
'nomineeCityId': nomineeCityId,
'nomineePinCode': nomineePinCode,
};
const errors = [];
const uniqueEmails = {};
const uniqueMobileNos = {};
for (const [field, value] of Object.entries(fields)) {
if (value === undefined || value === null || value === '') {
if (field === 'altMobileNoDec' || field === 'nomineeAltMobileNoDec') {
// If the field is optional and not provided, continue to the next field
continue;
}
errors.push(`${field} cannot be empty`);
} else if (field === 'email' || field === 'nomineeEmailDec') {
if (!isValidEmail(value)) {
errors.push(`Please enter a valid email address for ${field}`);
} else if (uniqueEmails[value]) {
errors.push(`${field} ${value} must be unique`);
} else {
uniqueEmails[value] = true;
}
} else if (field === 'mobileNo' || field === 'altMobileNoDec' || field === 'nomineeMobileDec' ||
field === 'nomineeAltMobileNoDec') {
if (!isValidMobile(value)) {
errors.push(`Please enter a valid mobile number for ${field}`);
} else if (uniqueMobileNos[value]) {
errors.push(`${field} number ${value} must be unique`);
} else {
uniqueMobileNos[value] = true;
}
}
}
if (errors.length > 0) {
return {
success: false,
errors: errors
};
} else {
return {
success: true,
message: 'Validation successful'
};
}
}
enquiryCreate({ email, mobileNo}) {
const fields = {
'email': email,
'mobileNo': mobileNo,
};
const errors = [];
const uniqueEmails = {};
const uniqueMobileNos = {};
const uniquePANs = {};
const uniqueAadharNos = {};
for (const [field, value] of Object.entries(fields)) {
if (value === undefined || value === null || value === '') {
errors.push(`${field} cannot be empty`);
} else if (field === 'email' ) {
if (!isValidEmail(value)) {
errors.push(`Please enter a valid email address for ${field}`);
}
} else if (field === 'mobileNo' ) {
if (!isValidMobile(value)) {
errors.push(`Please enter a valid mobile number for ${field}`);
}
}
}
if (errors.length > 0) {
return {
success: false,
errors: errors
};
} else {
return {
success: true,
message: 'Validation successful'
};
}
}
letsconnectCreate({ workemail, phoneno}) {
const fields = {
'email': workemail,
'mobileNo': phoneno,
};
const errors = [];
const uniqueEmails = {};
const uniqueMobileNos = {};
const uniquePANs = {};
const uniqueAadharNos = {};
for (const [field, value] of Object.entries(fields)) {
if (value === undefined || value === null || value === '') {
errors.push(`${field} cannot be empty`);
} else if (field === 'email' ) {
if (!isValidEmail(value)) {
errors.push(`Please enter a valid email address for ${field}`);
}
} else if (field === 'mobileNo' ) {
if (!isValidMobile(value)) {
errors.push(`Please enter a valid mobile number for ${field}`);
}
}
}
if (errors.length > 0) {
return {
success: false,
errors: errors
};
} else {
return {
success: true,
message: 'Validation successful'
};
}
}
}
function isValidEmail(email) {
const emailRegex = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/;
return emailRegex.test(email);
}
function isValidMobile(mobile) {
const mobileRegex = /^(?:(?:\+|0{0,2})91(\s*[\-]\s*)?|[0]?)?[7896]\d{9}$/;
return mobileRegex.test(mobile);
}