ekyc

Electronic KYC process with uploading ID document using OAuth 2.1 (experimental)
Log | Files | Refs | README | LICENSE

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 }