ekyc

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

id_document_list.ts (1206B)


      1 import {
      2   IDDocumentListRequest,
      3   IDDocumentListResponse,
      4   IDDocumentListUseCase,
      5 } from "#core/application/id_document/list.ts";
      6 
      7 import { IDDocumentDto } from "#infrastructure/memory/mapper/id_document.ts";
      8 
      9 const NB_PER_PAGE = 10;
     10 
     11 export class MemoryIDDocumentListAdapter implements IDDocumentListUseCase {
     12   constructor(private readonly idDocumentEntities: Map<string, IDDocumentDto>) {
     13   }
     14 
     15   execute(request: IDDocumentListRequest): Promise<IDDocumentListResponse> {
     16     const items = Array.from(this.idDocumentEntities.values())
     17       .filter((item) => item.state !== "capturing")
     18       .filter((_, index) => index > (request?.cursor ?? 0))
     19       .slice(0, NB_PER_PAGE)
     20       .map((i): IDDocumentListResponse["items"][number] => ({
     21         uuid: i.uuid,
     22         firstName: i.firstName,
     23         lastName: i.lastName,
     24         birthDate: i.birthDate,
     25         sex: i.sex,
     26         nationality: i.nationality,
     27         country: i.country,
     28         docFront: i.front,
     29         docBack: i.back,
     30         faceLeft: i.faceLeft,
     31         faceFront: i.faceFront,
     32         faceRight: i.faceRight,
     33       }));
     34 
     35     return Promise.resolve({
     36       items,
     37       next: (request.cursor ?? 0) + NB_PER_PAGE,
     38     });
     39   }
     40 }