Kaynağa Gözat

update verificaction handler to handle fingeprint request

enzo 3 gün önce
ebeveyn
işleme
e44dd75df0

+ 21 - 16
apps/fis-verification/src/fis-verification.service.ts

@@ -4,7 +4,7 @@ import { interval, Observable, Subject } from 'rxjs';
 import * as net from 'net'
 import { ConfigService } from '@nestjs/config';
 import { connectToAfisJava } from 'libs/java/afis.utils';
-import { FpVerificationPayload, FpVerificationResponse } from 'libs';
+import { Fingerprint, FingerprintPayload, FingerprintPayloadUI, FisMessage, JavaResponse, PersonFingerprintData } from 'libs';
 import { v1 as uuid } from 'uuid'
 
 @Injectable()
@@ -12,8 +12,8 @@ export class FisVerificationService {
   private port: number
   private host: string
   private javaClient: net.Socket
-  private incomingMessageFromJava!: Subject<FpVerificationResponse>
-  private fpTemplate: any[] = []
+  private incomingMessageFromJava!: Subject<JavaResponse>
+  private registeredFingerprintData: Fingerprint[] = []
 
   constructor(
     @Inject(`SAMPLEAPP_SERVICE`) private sampleClient: ClientProxy,
@@ -24,24 +24,29 @@ export class FisVerificationService {
 
     this.javaClient = connectToAfisJava(this.host, this.port)
     this.javaClient.on(`data`, (data) => {
-      let message: FpVerificationResponse = JSON.parse(data.toString())
-      console.log(message)
+      let message: JavaResponse = JSON.parse(data.toString())
+      console.log(`Java server response: ${message.message}`)
+      if (message.operation == `Registration` && message.status == `Success`) {
+        this.registeredFingerprintData.push((message.data as PersonFingerprintData).fingerprints[0] as Fingerprint)
+        console.log(message.data)
+        // console.log(this.registeredFingerprintData)
+        console.log(`${this.registeredFingerprintData.length} registered print.`)
+      }
       // this.incomingMessageFromJava.next(message)
     })
   }
 
-  public handleMessage(message: any): void {
-    let data = JSON.parse(message)
-    // console.log(data)
-    let extractionMessage: FpVerificationPayload = {
-      id: uuid(),
-      cmd: `Registration`,
-      date: new Date(),
-      data: data.messageData,
-      fpTemplateArray: [],
-      message: `LOLz`
+  public handleMessage(message: FisMessage): void {
+    console.log(`Sending fingerprint data to Java verification....`)
+    let payload: FingerprintPayloadUI = message.data as FingerprintPayloadUI
+    let command: FingerprintPayload = {
+      ...payload,
+      fpTemplateArray: this.registeredFingerprintData
     }
-    this.javaClient.write(JSON.stringify(extractionMessage) + `\n`)
+    this.javaClient.write(JSON.stringify(command) + `\n`)
+    // let data = JSON.parse(message)
+    // console.log(data)
+    // this.javaClient.write(JSON.stringify(extractionMessage) + `\n`)
   }
 
 }

+ 1 - 2
apps/sample-app/src/main.ts

@@ -14,7 +14,6 @@ async function bootstrap() {
   const host: string = config.get<string>(`sampleApp.host`) as string
   const restPort: number = config.get<number>(`sampleApp.restPort`) as number
   const tcpPort: number = config.get<number>(`sampleApp.tcpPort`) as number
-  const socketPort: number = config.get<number>(`sampleApp.socketPort`) as number
 
   app.enableCors({
     origin: `*`, // specify the allowed origin(s)
@@ -35,6 +34,6 @@ async function bootstrap() {
 
   await app.startAllMicroservices();
   await app.listen(restPort, host);
-  mainLogger.log(`REST API is running on: ${await app.getUrl()} and TCP is running on ${host}:${tcpPort} and Socket is running on ${host}:${socketPort}`);
+  mainLogger.log(`REST API is running on: ${await app.getUrl()} and TCP is running on ${host}:${tcpPort} and Socket is running on ${host}:${restPort}`);
 }
 bootstrap();

+ 1 - 1
libs/java/FingerprintDataVerification

@@ -1 +1 @@
-Subproject commit 65534930bf5adc95fee7305c20d58c37540a088c
+Subproject commit 3c7443ae2e744165dce0bebe1db80b152319f82a

+ 38 - 13
libs/types/interface.ts

@@ -18,30 +18,55 @@ export interface WrappedMessage {
     previousMessageID: string | null,
 }
 
-export interface FpVerificationPayload {
+
+/* These are just sample interfaces to test with the verification process. */
+
+export interface FisMessage {
+    header: {
+        messageID: string,
+        messageName: string
+    },
+    data: any
+}
+
+export interface FingerprintPayloadUI {
     id: string,
-    cmd: `Registration` | `Verification` | `Extract Template`,
+    cmd: `Registration` | `Verification`,
     date: Date,
-    data: any,
-    fpTemplate?: FingerprintTemplate,
-    fpTemplateArray: FingerprintTemplate[],
-    message?: string
+    personInfo: PersonInfo,
+    fpScan: string,
+    fingerPosition: number
+}
+export interface FingerprintPayload extends FingerprintPayloadUI {
+    fpTemplateArray: Fingerprint[]
 }
 
-export interface FpVerificationResponse {
+export interface JavaResponse {
     id: string,
+    operation: `Registration` | `Verification`,
+    status: `Failed` | `Success` | `Registered` | `Not Registered`,
     message: string,
-    data: FingerprintTemplate,
+    data: PersonFingerprintData,
     score?: number
 }
-export interface FingerprintTemplate {
+export interface PersonFingerprintData {
     id: string,
     name: string,
     org: string,
-    fingerprint: Fingerprint
+    code: string,
+    fingerprints: Fingerprint[]
 }
 
 export interface Fingerprint {
-    finger: number,
-    template: string
-}
+    name: string,
+    fpPosition: number,
+    fpTemplate: string,
+}
+
+export interface PersonInfo {
+    id: string,
+    name: string,
+    org: string,
+    code: number
+}
+