UNPKG

pnz-payments-sdk

Version:

PNZ Payments Account and Transaction API

127 lines (123 loc) 6.97 kB
/** * Account and Transaction API SpecificationLib * * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). */ import { ApiResponse, RequestOptions } from '../core'; import { StandingOrdersResponse, standingOrdersResponseSchema, } from '../models/standingOrdersResponse'; import { optional, string } from '../schema'; import { BaseController } from './baseController'; import { ApiError } from '@apimatic/core'; import { AccountsStandingOrders400Error } from '../errors/accountsStandingOrders400Error'; import { AccountsStandingOrders403Error } from '../errors/accountsStandingOrders403Error'; import { AccountsStandingOrders500Error } from '../errors/accountsStandingOrders500Error'; import { AccountsStandingOrders503Error } from '../errors/accountsStandingOrders503Error'; import { StandingOrders400Error } from '../errors/standingOrders400Error'; import { StandingOrders403Error } from '../errors/standingOrders403Error'; import { StandingOrders500Error } from '../errors/standingOrders500Error'; import { StandingOrders503Error } from '../errors/standingOrders503Error'; export class StandingOrdersController extends BaseController { /** * Get Standing Orders related to an account * * @param accountId A unique identifier used to identify the account resource. * @param xFapiAuthDate The time when the Customer last logged in with the Third Party. All * dates in the HTTP headers are represented as RFC 7231 Full Dates. An * example is below: Sun, 10 Sep 2017 19:43:31 UTC * @param xFapiCustomerIpAddress The Customer's IP address if the Customer is currently logged in with * the Third Party. * @param xFapiInteractionId An RFC4122 UID used as a correlation id. * @param xMerchantIpAddress The IP address of the merchant when making account information * requests through a Third Party. * @param xCustomerUserAgent The User-Agent of the application on the customer device that is used * to make the account information request * @return Response from the API call */ async getAccountStandingOrders( accountId: string, xFapiAuthDate?: string, xFapiCustomerIpAddress?: string, xFapiInteractionId?: string, xMerchantIpAddress?: string, xCustomerUserAgent?: string, requestOptions?: RequestOptions ): Promise<ApiResponse<StandingOrdersResponse>> { const req = this.createRequest('GET'); const mapped = req.prepareArgs({ accountId: [accountId, string()], xFapiAuthDate: [xFapiAuthDate, optional(string())], xFapiCustomerIpAddress: [xFapiCustomerIpAddress, optional(string())], xFapiInteractionId: [xFapiInteractionId, optional(string())], xMerchantIpAddress: [xMerchantIpAddress, optional(string())], xCustomerUserAgent: [xCustomerUserAgent, optional(string())], }); req.header('x-fapi-auth-date', mapped.xFapiAuthDate); req.header('x-fapi-customer-ip-address', mapped.xFapiCustomerIpAddress); req.header('x-fapi-interaction-id', mapped.xFapiInteractionId); req.header('x-merchant-ip-address', mapped.xMerchantIpAddress); req.header('x-customer-user-agent', mapped.xCustomerUserAgent); req.appendTemplatePath`/accounts/${mapped.accountId}/standing-orders`; req.throwOn(400, AccountsStandingOrders400Error, 'Bad Request'); req.throwOn(401, ApiError, 'Unauthorized'); req.throwOn(403, AccountsStandingOrders403Error, 'Forbidden'); req.throwOn(405, ApiError, 'Method Not Allowed'); req.throwOn(406, ApiError, 'Not Acceptable'); req.throwOn(429, ApiError, 'Too Many Requests'); req.throwOn(500, AccountsStandingOrders500Error, 'Internal Server Error'); req.throwOn(501, ApiError, 'Not Implemented'); req.throwOn(503, AccountsStandingOrders503Error, 'Service Unavailable'); req.authenticate([{ hTTPBearerAuthentication: true }]); return req.callAsJson(standingOrdersResponseSchema, requestOptions); } /** * Get Standing Orders * * @param xFapiAuthDate The time when the Customer last logged in with the Third Party. All * dates in the HTTP headers are represented as RFC 7231 Full Dates. An * example is below: Sun, 10 Sep 2017 19:43:31 UTC * @param xFapiCustomerIpAddress The Customer's IP address if the Customer is currently logged in with * the Third Party. * @param xFapiInteractionId An RFC4122 UID used as a correlation id. * @param xMerchantIpAddress The IP address of the merchant when making account information * requests through a Third Party. * @param xCustomerUserAgent The User-Agent of the application on the customer device that is used * to make the account information request * @return Response from the API call */ async getStandingOrders( xFapiAuthDate?: string, xFapiCustomerIpAddress?: string, xFapiInteractionId?: string, xMerchantIpAddress?: string, xCustomerUserAgent?: string, requestOptions?: RequestOptions ): Promise<ApiResponse<StandingOrdersResponse>> { const req = this.createRequest('GET', '/standing-orders'); const mapped = req.prepareArgs({ xFapiAuthDate: [xFapiAuthDate, optional(string())], xFapiCustomerIpAddress: [xFapiCustomerIpAddress, optional(string())], xFapiInteractionId: [xFapiInteractionId, optional(string())], xMerchantIpAddress: [xMerchantIpAddress, optional(string())], xCustomerUserAgent: [xCustomerUserAgent, optional(string())], }); req.header('x-fapi-auth-date', mapped.xFapiAuthDate); req.header('x-fapi-customer-ip-address', mapped.xFapiCustomerIpAddress); req.header('x-fapi-interaction-id', mapped.xFapiInteractionId); req.header('x-merchant-ip-address', mapped.xMerchantIpAddress); req.header('x-customer-user-agent', mapped.xCustomerUserAgent); req.throwOn(400, StandingOrders400Error, 'Bad Request'); req.throwOn(401, ApiError, 'Unauthorized'); req.throwOn(403, StandingOrders403Error, 'Forbidden'); req.throwOn(405, ApiError, 'Method Not Allowed'); req.throwOn(406, ApiError, 'Not Acceptable'); req.throwOn(429, ApiError, 'Too Many Requests'); req.throwOn(500, StandingOrders500Error, 'Internal Server Error'); req.throwOn(501, ApiError, 'Not Implemented'); req.throwOn(503, StandingOrders503Error, 'Service Unavailable'); req.authenticate([{ hTTPBearerAuthentication: true }]); return req.callAsJson(standingOrdersResponseSchema, requestOptions); } }