Skip to content

Cognizant

Fingermark Cognizant menu and ordering integration.

Framework

This library requires Node.

Overview

This library provide function handlers for Supersonic APIs that interact with Cognizant APIs.

Current implementation support preOrder, placeOrder and placeOrderWebhookCallback.

Full documentation about the Cognizant APIs can be found here

Usage

All functions handlers return typed objects that will be consumed by the root function to complete the API execution.

ts
// pre-order.ts
import { preOrderHandler } from '@fingermarkglobal/cognizant';
import preOrderJson from './data/pre-order-handler-payload';
import { PreOrderPayloadCognizant, PreOrderHandlerPayloadResponse } from '@fingermarkglobal/types';

const response: PreOrderHandlerPayloadResponse = await preOrderHandler(
  preOrderJson as PreOrderPayloadCognizant,
);
ts
// place-order.ts
import { placeOrderHandler } from '@fingermarkglobal/cognizant';
import placeOrderJson from './data/place-order-handler-payload';
import {
  PlaceOrderPayloadCognizant,
  PlaceOrderHandlerPayloadResponse,
} from '@fingermarkglobal/types';
import { EventEmitter } from 'events';

const orderUpdateEvent = new EventEmitter();

// async event emmiter to complete order submission
setTimeout(() => {
  orderUpdateEvent.emit(OrderChangeEvent.STATUS_CHANGE, OrderStatus.SUBMITTED);
}, 1000);

const response: PlaceOrderHandlerPayloadResponse = await placeOrderHandler(
  placeOrderJson as PlaceOrderPayloadCognizant,
  orderUpdateEvent,
);
ts
// place-order-webhook-callback.ts
import { placeOrderWebhookCallbackHandler } from '@fingermarkglobal/cognizant';
import {
  PlaceOrderWebhookCallbackPayload,
  PlaceOrderWebhookCallbackHandlerPayloadResponse,
} from '@fingermarkglobal/types';

const body: PlaceOrderWebhookCallbackPayload = {
  status: 'sent-to-pos-completed',
  pickupDateTime: '1658349702389',
  orderId: '82xxr',
  osOrderId: '908',
};
const response: PlaceOrderWebhookCallbackHandlerPayloadResponse = await placeOrderWebhookCallbackHandler(
  body,
);