From dc15a6a5be68b3830d0e3b12e13e7199ece0b617 Mon Sep 17 00:00:00 2001
From: Ajay Nishad <ajay.nishad@eminds.ai>
Date: Tue, 5 Dec 2023 11:09:23 +0530
Subject: [PATCH] feat: implement rating api

---
 mappings/on_rating.jsonata | 6 ++++++
 mappings/rating.jsonata    | 4 ++++
 src/gcl/gcl.controller.ts  | 6 ++++++
 src/gcl/gcl.service.ts     | 8 ++++++++
 4 files changed, 24 insertions(+)
 create mode 100644 mappings/on_rating.jsonata
 create mode 100644 mappings/rating.jsonata

diff --git a/mappings/on_rating.jsonata b/mappings/on_rating.jsonata
new file mode 100644
index 0000000..ae8487b
--- /dev/null
+++ b/mappings/on_rating.jsonata
@@ -0,0 +1,6 @@
+{
+    "data": $.responses.{
+        "context": context,
+        "message": message
+    }[]
+}
diff --git a/mappings/rating.jsonata b/mappings/rating.jsonata
new file mode 100644
index 0000000..2cf3d62
--- /dev/null
+++ b/mappings/rating.jsonata
@@ -0,0 +1,4 @@
+{
+    "context": context,
+    "message": message
+}
diff --git a/src/gcl/gcl.controller.ts b/src/gcl/gcl.controller.ts
index c6e9bfa..6909ffd 100644
--- a/src/gcl/gcl.controller.ts
+++ b/src/gcl/gcl.controller.ts
@@ -36,4 +36,10 @@ export class GCLController {
         const statusResult = await this.service.status(body);
         return statusResult;
     }
+
+    @httpPost('rating')
+    public async rating(@requestBody() body: any): Promise<any> {
+        const statusResult = await this.service.rating(body);
+        return statusResult;
+    }
 }
diff --git a/src/gcl/gcl.service.ts b/src/gcl/gcl.service.ts
index a490664..b0a51de 100644
--- a/src/gcl/gcl.service.ts
+++ b/src/gcl/gcl.service.ts
@@ -52,4 +52,12 @@ export class GCLService {
 
         return "In Progress";
     }
+
+    async rating(body: any) {
+        const payload = await this.tlService.transform(body, "rating");
+        const psResponse = await this.psClientService.post(payload);
+        const response = await this.tlService.transform(psResponse, "on_rating");
+
+        return response;
+    }
 }
-- 
GitLab