UNPKG

component-dbs-core

Version:

DTO objects shared among device backend

198 lines 6.07 kB
"use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const graphql_tag_1 = __importDefault(require("graphql-tag")); const appsyncClient_1 = require("./appsyncClient"); const URL = 'https://wi46fdjdd5dzblewd5illnfqqi.appsync-api.ap-southeast-2.amazonaws.com/graphql'; const subscribeTxn = graphql_tag_1.default ` subscription request($id: ID!) { responseTransaction(id: $id) { id caid catid } } `; const responseTxn = graphql_tag_1.default ` mutation responseTransaction($transaction: TransactionResponseInput!) { responseTransaction(transaction: $transaction) { id caid catid } } `; const requestTxn = graphql_tag_1.default ` mutation requestTransaction($transaction: TransactionRequestInput!) { requestTransaction(transaction: $transaction) { status } } `; const subscribeTransaction = (gq) => { console.log('send subscription transaction response'); const observable = gq .subscribe({ query: subscribeTxn, fetchPolicy: 'network-only', variables: { id: '123' }, }) .subscribe({ next: (data) => { console.log('realtime data: ', data); }, complete: () => { console.log('complete'); }, error: (err) => console.error(err), }); }; const responseTransaction = (gq) => { console.log('response transaction'); gq.mutate({ mutation: responseTxn, variables: { transaction: { id: '123' }, }, }) .then((data) => { console.log('response txn rep:', data); }) .catch((err) => { console.error(err); }); }; const requestTransaction = (gq) => { console.log('request transaction'); gq.mutate({ mutation: requestTxn, variables: { transaction: { id: '123' }, }, }) .then((data) => { console.log('request txn rep:', data); }) .catch((err) => { console.error(err); }); }; const onTransactionUpdate = (gq) => { gq.subscribe({ query: graphql_tag_1.default ` subscription { onTransactionUpdate( deviceUuid: "413edb61-acb0-4475-921a-dfe1aaa59e2f" ) { id taxAmounts { name amount } } } `, fetchPolicy: 'network-only', }).subscribe({ next: (data) => { console.log('get subscribed data:', data); console.log('get subscribed data:', JSON.stringify(data.data.onTransactionUpdate.taxAmounts)); }, error: (err) => console.error('get error:', err), }); }; const sendTransactionUpdate = (gq) => { const transaction = { surchargeAmount: '500', scheme: 'AMEX', siteName: '345bb58f-de7e-42a8-a8d5-8dbb49a02fc6', deviceName: 'abca11a1-12bd-4280-bc22-731ca498e3fa', reference: '24e69d65-069e-45c2-9b4a-8163bf391f8d', depositDate: '2020-07-13T00:39:48.006Z', id: 'e0dc8f0e-9739-4ff4-9a3b-1db236f8df8a', siteUuid: '229962ec-691e-40fe-b4ac-0f2adfa3c633', timestamp: '2020-07-13T00:39:48.006Z', saleAmount: '0', amount: '200', maskedPan: 'masked', entityUuid: '539ea526-1517-4e42-8e71-6fe8a281b577', tipAmount: '100', transactionType: 'PURCHASE', feeAmount: '400', taxAmounts: [{ amount: '100', name: 'name' }], depositUuid: 'a984f940-43b1-48bf-a566-d7ffec86cae2', status: 'APPROVED', deviceUuid: '65c3140c-b6d0-4675-9e7e-fbc4750910cd', }; let keys = Object.keys(transaction); keys = [ 'surchargeAmount', 'scheme', 'siteName', 'deviceName', 'reference', 'depositDate', 'id', 'siteUuid', 'timestamp', 'saleAmount', 'amount', 'maskedPan', 'entityUuid', 'tipAmount', 'transactionType', 'feeAmount', 'taxAmounts {amount,name}', 'depositUuid', 'status', 'deviceUuid', ]; console.log(keys); gq.mutate({ mutation: graphql_tag_1.default ` mutation publishTransactionUpdateEvent($transaction: TransactionInput!) { publishTransactionUpdateEvent(transaction: $transaction) { ${keys} } } `, variables: { transaction, }, }) .then((data) => { console.log('mutation ', data); }) .catch((err) => console.error(err)); }; const client = appsyncClient_1.createClient(URL, appsyncClient_1.oidcAuth); const sleep = () => new Promise((resolve) => setTimeout(resolve(), 1000)); const testTransaction = () => { client .hydrated() .then((gq) => __awaiter(void 0, void 0, void 0, function* () { onTransactionUpdate(gq); // await sleep(); // sendTransactionUpdate(gq); // subscribeTransaction(gq); // await sleep(); // responseTransaction(gq); // requestTransaction(gq); })) .catch((err) => { console.error(err); }); }; testTransaction(); //# sourceMappingURL=transactionDemo.js.map