All files / src/lambda lambdaTransaction.ts

100% Statements 25/25
100% Branches 0/0
100% Functions 7/7
100% Lines 25/25

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106  4x         4x 4x 4x                         4x         1x 1x             4x   1x 1x         4x   1x 1x             4x   1x 1x                   4x   1x 1x                       4x   1x 1x                   4x   1x 1x                  
import { Handler, Context } from 'aws-lambda';
import {
  withMiddlewares,
  types,
  bootstrapNestJSMiddleware,
} from '@npco/component-core';
import { TransactionService } from '../transactions/transactionService';
import { AppModule } from '../appModule';
import {
  logMiddleware,
  accessTokenMiddleware,
  checkDeviceStatusMiddleware,
} from '../middlewares';
import {
  TransactionQueryInput,
  AppAccessContext,
  OnTransactionUpdateInput,
  TransactionRequestInput,
} from '../types.d';
import { TransactionEventDto } from '../transactions/transactionDto'
 
export const requestTransactionHandler: Handler = withMiddlewares(
  (
    event: { args: { transaction: TransactionRequestInput } },
    context: Context,
  ) => {
    const { app, accessToken } = context as AppAccessContext;
    return app
      .get(TransactionService)
      .requestTransaction(accessToken, event.args.transaction);
  },
  [logMiddleware, bootstrapNestJSMiddleware(AppModule), accessTokenMiddleware],
);
 
export const subscribeTransactionResponseHandler: Handler = withMiddlewares(
  (event: any, context: Context) => {
    const app = (context as types.AppContext).app;
    return app.get(TransactionService).subscribeTransactionResponse(event);
  },
  [bootstrapNestJSMiddleware(AppModule), logMiddleware],
);
 
export const projectionTransactionHandler: Handler = withMiddlewares(
  (event: TransactionEventDto, context: Context) => {
    const app = (context as types.AppContext).app;
    return app
      .get(TransactionService)
      .processProjectionTransactionEvent(event);
  },
  [logMiddleware, bootstrapNestJSMiddleware(AppModule)],
);
 
export const getTransactionsHandler: Handler = withMiddlewares(
  (event: { args: TransactionQueryInput }, context: Context) => {
    const { app, accessToken } = context as AppAccessContext;
    return app.get(TransactionService).getTransactions(event.args, accessToken);
  },
  [
    logMiddleware,
    bootstrapNestJSMiddleware(AppModule),
    accessTokenMiddleware,
    checkDeviceStatusMiddleware,
  ],
);
 
export const getTransactionHandler: Handler = withMiddlewares(
  (event: { args: { transactionUuid: string } }, context: Context) => {
    const app = (context as types.AppContext).app;
    return app
      .get(TransactionService)
      .getTransaction(event.args.transactionUuid);
  },
  [
    logMiddleware,
    bootstrapNestJSMiddleware(AppModule),
    accessTokenMiddleware,
    checkDeviceStatusMiddleware,
  ],
);
 
export const getTransactionByCard: Handler = withMiddlewares(
  (event: { args: TransactionQueryInput }, context: Context) => {
    const { app, accessToken } = context as AppAccessContext;
    return app.get(TransactionService).getTransactions(event.args, accessToken);
  },
  [
    logMiddleware,
    bootstrapNestJSMiddleware(AppModule),
    accessTokenMiddleware,
    checkDeviceStatusMiddleware,
  ],
);
 
export const onTransactionUpdateHandler: Handler = withMiddlewares(
  (event: OnTransactionUpdateInput, context: Context) => {
    const { app, accessToken } = context as AppAccessContext;
    return app.get(TransactionService).onTransactionUpdate(accessToken);
  },
  [
    logMiddleware,
    bootstrapNestJSMiddleware(AppModule),
    accessTokenMiddleware,
    checkDeviceStatusMiddleware,
  ],
);