From 53c7a05a66acfb8915ef4f2d64cd2e05c7b2a013 Mon Sep 17 00:00:00 2001 From: Ajay Nishad <ajay.nishad@eminds.ai> Date: Wed, 6 Dec 2023 19:30:31 +0530 Subject: [PATCH] feat: add cancel api --- mappings/cancel.jsonata | 4 ++++ mappings/on_cancel.jsonata | 40 ++++++++++++++++++++++++++++++++++++++ src/gcl/gcl.controller.ts | 6 ++++++ src/gcl/gcl.service.ts | 9 +++++++++ 4 files changed, 59 insertions(+) create mode 100644 mappings/cancel.jsonata create mode 100644 mappings/on_cancel.jsonata diff --git a/mappings/cancel.jsonata b/mappings/cancel.jsonata new file mode 100644 index 0000000..1af3ce8 --- /dev/null +++ b/mappings/cancel.jsonata @@ -0,0 +1,4 @@ +{ + "context": $context(context, $action), + "message": message +} diff --git a/mappings/on_cancel.jsonata b/mappings/on_cancel.jsonata new file mode 100644 index 0000000..9018d19 --- /dev/null +++ b/mappings/on_cancel.jsonata @@ -0,0 +1,40 @@ +{ + "data": $.responses.{ + "context": context, + "message": { + "order": { + "type": message.order.type, + "provider": { + "id": message.order.provider.id, + "name": message.order.provider.descriptor.name, + "short_desc": message.order.provider.descriptor.short_desc, + "long_desc": message.order.provider.descriptor.long_desc, + "rating": message.order.provider.rating, + "images": message.order.provider.descriptor.images.{ + "url": url, + "size_type": size_type + }, + "media": message.order.provider.descriptor.media.{ + "url": url + } + }, + "items": message.order.items.{ + "id": id, + "name": descriptor.name, + "short_desc": descriptor.short_desc, + "long_desc": descriptor.long_desc, + "price": price, + "rating": rating, + "rateable": rateable, + "time": time, + "quantity": quantity + }, + "fulfillments": message.order.fulfillments, + "quote": message.order.quote, + "billing": message.order.billing, + "payments": message.order.payments, + "cancellation_terms": message.order.cancellation_terms + } + } + }[] +} diff --git a/src/gcl/gcl.controller.ts b/src/gcl/gcl.controller.ts index 6909ffd..6e66375 100644 --- a/src/gcl/gcl.controller.ts +++ b/src/gcl/gcl.controller.ts @@ -42,4 +42,10 @@ export class GCLController { const statusResult = await this.service.rating(body); return statusResult; } + + @httpPost('cancel') + public async cancel(@requestBody() body: any): Promise<any> { + const statusResult = await this.service.cancel(body); + return statusResult; + } } diff --git a/src/gcl/gcl.service.ts b/src/gcl/gcl.service.ts index dab92b9..0131812 100644 --- a/src/gcl/gcl.service.ts +++ b/src/gcl/gcl.service.ts @@ -1,6 +1,7 @@ import { inject, injectable } from "inversify"; import { TLService } from "../tl/tl.service"; import { PSClientService } from "../psclient/psclient.service"; +import data from '../../data.json'; @injectable() export class GCLService { @@ -58,4 +59,12 @@ export class GCLService { return response; } + + async cancel(body: any) { + const payload = await this.tlService.transform(body, "cancel"); + const psResponse = await this.psClientService.post(payload); + const response = await this.tlService.transform(psResponse, "on_cancel"); + + return response; + } } -- GitLab