Appearance
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.