From 7d5861b831d01a7a7644f5f4ff1ffcd13203bac4 Mon Sep 17 00:00:00 2001 From: Sosthene Date: Sun, 7 Sep 2025 18:34:25 +0200 Subject: [PATCH] Add getUserProcessByIdNot() --- src/client.ts | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/src/client.ts b/src/client.ts index 8915559..aadf25b 100644 --- a/src/client.ts +++ b/src/client.ts @@ -250,6 +250,42 @@ export class SDKSignerClient { return this.sendAndWait(message, MessageType.PROCESS_CREATED); } + // Are we part of user process as a validator? + // User on first connection do have his idnot + // we must check if there's already a process for this user + // if yes, user can add a new device he made the idnot login on + // if not, we create a new process and add it's pairing id + async getUserProcessByIdnot(idNot: string): Promise<{ processId: string, processData: any } | null> { + console.log('Getting user process by idnot:', idNot); + try { + const signerResponse: ServerResponse = await this.getOwnedProcesses(); + // We are interested in the data + const processesData: any = signerResponse.data; + for (const [processId, processData] of Object.entries(processesData)) { + if (processData + && typeof processData === 'object' + && 'utype' in processData + && 'idNot' in processData + && 'office' in processData + && 'contact' in processData + && 'office_role' in processData + && 'role' in processData + && (processData as any).utype === 'collaborator' + && (processData as any).office + && (processData as any).office.idNot + && (processData as any).idNot === idNot + ) { + console.log('Found matching process:', processId); + return { processId, processData }; + } + } + return null; + } catch (error) { + console.error('Error getting user process by idnot:', error); + throw error; + } + } + /** * Notify an update for a process