Skip to content

Fingermark API

Fingermark API is a Javascript SDK that facilitates interacting with a number of different API's.

Usage

The SDK provides two kinds of API functions, a vanilla Javascript promise or a full fledged XState machine which internally invokes it's respective promise.

Pre order

Promise:

ts
import { preOrder } from '@fingermarkglobal/fm-api';
import { PreOrderPayload } from '@fingermarkglobal/types';

const makePreOrder = (): Promise<unknown> => {
  const timeout: number = 30;
  const payload: PreOrderPayload = {
    //...
  };
  return preOrder(payload, timeout);
};

Machine:

ts
import { doPreOrder } from '@fingermarkglobal/fm-api';
import { PreOrderPayload } from '@fingermarkglobal/types';

const createPreOrderMachine = (): void => {
  const timeout: number = 30;
  const payload: PreOrderPayload = {
    //...
  };

  doPreOrder({
    payload,
    timeout,
    transition: machine => {
      console.log(machine);
    },
  });
};

Place order

Promise:

ts
import { placeOrder } from '@fingermarkglobal/fm-api';
import { PlaceOrderPayload } from '@fingermarkglobal/types';

const makePlaceOrder = (): Promise<unknown> => {
  const timeout: number = 30;
  const payload: PlaceOrderPayload = {
    //...
  };
  return placeOrder(payload, timeout);
};

Machine:

ts
import { doPlaceOrder } from '@fingermarkglobal/fm-api';
import { PlaceOrderPayload } from '@fingermarkglobal/types';

const createPlaceOrderMachine = (): void => {
  const timeout: number = 30;
  const payload: PlaceOrderPayload = {
    //...
  };

  doPlaceOrder({
    payload,
    timeout,
    transition: machine => {
      console.log(machine);
    },
  });
};

Cancel order

Promise:

ts
import { cancelOrder } from '@fingermarkglobal/fm-api';
import { CancelOrderPayload } from '@fingermarkglobal/types';

const makeCancelOrder = (): Promise<unknown> => {
  const timeout: number = 30;
  const payload: CancelOrderPayload = {
    //...
  };
  return cancelOrder(payload, timeout);
};

Machine:

ts
import { doCancelOrder } from '@fingermarkglobal/fm-api';
import { CancelOrderPayload } from '@fingermarkglobal/types';

const createCancelOrderMachine = (): void => {
  const timeout: number = 30;
  const payload: CancelOrderPayload = {
    //...
  };

  doCancelOrder({
    payload,
    timeout,
    transition: machine => {
      console.log(machine);
    },
  });
};

Save order

Promise:

ts
import { saveOrder } from '@fingermarkglobal/fm-api';
import { SaveOrderPayload } from '@fingermarkglobal/types';

const makeSaveOrder = (): Promise<unknown> => {
  const timeout: number = 30;
  const payload: SaveOrderPayload = {
    //...
  };
  return saveOrder(payload, timeout);
};

Machine:

ts
import { doSaveOrder } from '@fingermarkglobal/fm-api';
import { SaveOrderPayload } from '@fingermarkglobal/types';

const createSaveOrderMachine = (): void => {
  const timeout: number = 30;
  const payload: SaveOrderPayload = {
    //...
  };

  doSaveOrder({
    payload,
    timeout,
    transition: machine => {
      console.log(machine);
    },
  });
};

Gotcha's

Please refer to @fingermarkglobal/types for more information on how payloads are typed.