/** * Connect gateway with data. */ import { IAPIGatewayEvent, IDynamoDbEvent, ISnsEvent } from "@kushki/core"; import { Context } from "aws-lambda"; import { PublishResponse } from "aws-sdk/clients/sns"; import { Observable } from "rxjs"; import { AgentRequestParameters } from "types/agent_request_parameters"; import { ChargeSnsMessage } from "types/charge_sns_message"; import { DynamoTransactionSns } from "types/dynamo_transaction_sns"; import { InitRequest } from "types/init_request"; import { StatusRequestParameters } from "types/status_request_parameters"; import { TokenRequest } from "types/token_request"; import { TransactionFetch } from "types/transaction_fetch"; /** * Connect gateway with data. */ export interface ITransferService { /** * Get a token */ getToken( event: IAPIGatewayEvent, context: Context ): Observable; /** * Send a queueWebhooks request */ queueWebhooks( event: IDynamoDbEvent, context: Context ): Observable; /** * * Init a transaction */ init( event: IAPIGatewayEvent, context: Context ): Observable; /** * Get bank list from transfer service */ bankList( event: IAPIGatewayEvent, context: Context ): Observable; /** * * Get information and finalize a transaction */ charge( event: ISnsEvent, context: Context ): Observable; /** * * Send webhook request to merchant */ webhook( event: ISnsEvent, context: Context ): Observable; /** * Check status of transfer transaction */ status( event: IAPIGatewayEvent< null, StatusRequestParameters, null, { merchantId: string } >, context: Context ): Observable; /** * Manage ticketNumber and token status */ agent( event: IAPIGatewayEvent, context: Context ): Observable; /** * Call a Gateway endpoint */ call(event: { method: string; args: object }): Observable; }