phone.ts (1954B)
1 import { Code } from "#core/domain/code.ts"; 2 import { PersonalPhoneNumber } from "#core/domain/personal_phone_number.ts"; 3 import { PhoneEKYC } from "#core/domain/phone_ekyc.ts"; 4 import { SmsChallenge } from "#core/domain/sms_challenge.ts"; 5 import { UUID } from "#core/domain/uuid.ts"; 6 7 export type PhoneEKYCDto = { 8 uuid: string; 9 phoneNumber: string | null; 10 phoneNumberVerified: boolean; 11 phoneNumberCode: string | null; 12 phoneNumberCodeExpire: Date; 13 phoneNumberChallengeRequest: number; 14 phoneNumberChallengeRequestExpire: Date; 15 phoneNumberChallengeAttempt: number; 16 phoneNumberChallengeAttemptExpire: Date; 17 version: number; 18 }; 19 20 export function mapFromPhoneEKYC(phoneEKYC: PhoneEKYC): PhoneEKYCDto { 21 return { 22 uuid: phoneEKYC.id.toString(), 23 phoneNumber: phoneEKYC.phoneNumber?.toString() ?? null, 24 phoneNumberVerified: phoneEKYC.smsChallenge.verified, 25 phoneNumberCode: phoneEKYC.smsChallenge.code?.toString() ?? null, 26 phoneNumberCodeExpire: new Date(phoneEKYC.smsChallenge.codeExpire), 27 phoneNumberChallengeRequest: phoneEKYC.smsChallenge.request, 28 phoneNumberChallengeRequestExpire: new Date( 29 phoneEKYC.smsChallenge.requestExpire, 30 ), 31 phoneNumberChallengeAttempt: phoneEKYC.smsChallenge.attempt, 32 phoneNumberChallengeAttemptExpire: new Date( 33 phoneEKYC.smsChallenge.attemptExpire, 34 ), 35 version: phoneEKYC.version, 36 }; 37 } 38 39 export function mapToPhoneEKYC(dto: PhoneEKYCDto) { 40 return new PhoneEKYC( 41 new UUID(dto.uuid), 42 dto.phoneNumber ? new PersonalPhoneNumber(dto.phoneNumber) : undefined, 43 new SmsChallenge( 44 dto.phoneNumberVerified, 45 dto.phoneNumberCode ? new Code(dto.phoneNumberCode) : undefined, 46 dto.phoneNumberCodeExpire.getTime(), 47 dto.phoneNumberChallengeRequest, 48 dto.phoneNumberChallengeRequestExpire.getTime(), 49 dto.phoneNumberChallengeAttempt, 50 dto.phoneNumberChallengeAttemptExpire.getTime(), 51 ), 52 dto.version, 53 ); 54 }