UNPKG

data-and-reporting-sdk

Version:

Data And Reporting product consists of API's which provides details of transaction and invoice informations about shell cards. The Shell Card Transaction and Invoice API is REST-based and employs Basic authentication in Version 1 and Oauth authentication

809 lines 44.6 kB
"use strict"; /** * Shell Data & Reporting APIsLib * * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). */ Object.defineProperty(exports, "__esModule", { value: true }); exports.TransactionController = void 0; var tslib_1 = require("tslib"); var cardUsageSummaryReq_js_1 = require("../models/cardUsageSummaryReq.js"); var cardUsageSummaryRes_js_1 = require("../models/cardUsageSummaryRes.js"); var feeSummaryResponse_js_1 = require("../models/feeSummaryResponse.js"); var fuelConsumptionReq_js_1 = require("../models/fuelConsumptionReq.js"); var fuelConsumptionResponse_js_1 = require("../models/fuelConsumptionResponse.js"); var multiPricedTransactionReq_js_1 = require("../models/multiPricedTransactionReq.js"); var multiPricedTransactionRes_js_1 = require("../models/multiPricedTransactionRes.js"); var pricedTransactionRequestV2_js_1 = require("../models/pricedTransactionRequestV2.js"); var pricedTransactionRes_js_1 = require("../models/pricedTransactionRes.js"); var pricedTransactionResponseV2_js_1 = require("../models/pricedTransactionResponseV2.js"); var pricedTransSummaryResp_js_1 = require("../models/pricedTransSummaryResp.js"); var priceTransactionReq_js_1 = require("../models/priceTransactionReq.js"); var priceTransSummaryReq_js_1 = require("../models/priceTransSummaryReq.js"); var recentTransactionRequest_js_1 = require("../models/recentTransactionRequest.js"); var recentTransactionsResponse_js_1 = require("../models/recentTransactionsResponse.js"); var transactionExceptionsReq_js_1 = require("../models/transactionExceptionsReq.js"); var transactionExceptionsRes_js_1 = require("../models/transactionExceptionsRes.js"); var transactionFeesReq_js_1 = require("../models/transactionFeesReq.js"); var transactionFeesRes_js_1 = require("../models/transactionFeesRes.js"); var transactionFeesSummaryReq_js_1 = require("../models/transactionFeesSummaryReq.js"); var updateOdometerRequest_js_1 = require("../models/updateOdometerRequest.js"); var updateOdometerResp_js_1 = require("../models/updateOdometerResp.js"); var volumeBasedBonusReq_js_1 = require("../models/volumeBasedBonusReq.js"); var volumeBasedBonusRes_js_1 = require("../models/volumeBasedBonusRes.js"); var volumeBasedPricingReq_js_1 = require("../models/volumeBasedPricingReq.js"); var volumeBasedPricingRes_js_1 = require("../models/volumeBasedPricingRes.js"); var schema_js_1 = require("../schema.js"); var baseController_js_1 = require("./baseController.js"); var errorObjectError_js_1 = require("../errors/errorObjectError.js"); var TransactionController = /** @class */ (function (_super) { tslib_1.__extends(TransactionController, _super); function TransactionController() { return _super !== null && _super.apply(this, arguments) || this; } /** * This API allows querying transaction data (i.e. Priced, Billed and Unbilled sales items). It * provides a flexible search criteria and supports paging. * * * * Transactions that are posted but not yet priced, billed or that are in error will not be returned by * this API. The API also supports returning Fee Items. * * * * #### Supported operations * * * Get sales items and fee transactions * * * Search by invoice status * * * Search by fixed date period * * * Search by date range * * * Search by account * * * Search by card * * * Get sales items only * * * Search by transaction Id or location * * * Search by transaction posting date * * * Search by invoice number or date * * * Search by driver name or vehicle registration number * * * Search by card group * * * Search by fuel only transactions * * * Search by product * * * * This API fetches transactions for a period based on the below parameters and priority order: * * 1. InvoiceNumber * * 2. InvoiceDate * * 3. FromDate, ToDate * * 4. PostingFromDate, PostingToDate (Can be used only when IncludeFees = false) * * 5. InvoiceDateFrom, InvoiceDateTo * * 6. Period * * * * This API considers only one of the above set of parameters at a time. For example, if InvoiceNumber * and Period are provided in the input then Period is ignored and transactions associated to the given * invoice number are returned. * * * * If none of the above parameters are provided then last 7 days transactions will be fetched. * * * * This operation can fetch transactions that are old up to 24 (configurable) months. However, the date * range between any of the ‘From’ and ‘To’ dates in the above combination cannot be more than 210 * (configurable) days. * * * * @param requestId Mandatory UUID (according to RFC 4122 standards) for requests * and responses. This will be played back in the response from the * request. * @param body Priced Transaction Request Body * @return Response from the API call */ TransactionController.prototype.pricedTransactions = function (requestId, body, requestOptions) { return tslib_1.__awaiter(this, void 0, void 0, function () { var req, mapped; return tslib_1.__generator(this, function (_a) { req = this.createRequest('POST', '/transaction-data/v1/pricedtransaction'); mapped = req.prepareArgs({ requestId: [requestId, (0, schema_js_1.string)()], body: [body, (0, schema_js_1.optional)(priceTransactionReq_js_1.priceTransactionReqSchema)], }); req.header('RequestId', mapped.requestId); req.header('Content-Type', 'application/json'); req.json(mapped.body); req.throwOn(400, errorObjectError_js_1.ErrorObjectError, 'The server cannot or will not process the request due to something that is perceived to be a client error (e.g., malformed request syntax, invalid request message framing, or deceptive request routing).'); req.throwOn(401, errorObjectError_js_1.ErrorObjectError, 'The request has not been applied because it lacks valid authentication credentials for the target resource.'); req.throwOn(403, errorObjectError_js_1.ErrorObjectError, 'Forbidden'); req.throwOn(404, errorObjectError_js_1.ErrorObjectError, 'The origin server did not find a current representation for the target resource or is not willing to disclose that one exists.'); req.throwOn(500, errorObjectError_js_1.ErrorObjectError, 'The server encountered an unexpected condition that prevented it from fulfilling the request.'); req.authenticate([{ bearerToken: true }]); return [2 /*return*/, req.callAsJson(pricedTransactionRes_js_1.pricedTransactionResSchema, requestOptions)]; }); }); }; /** * This API returns the transaction summary data (i.e. Priced, Billed and Unbilled sales items). It * provides a flexible search criteria. * * The API also supports returning Fee Items. Transactions posted for fee items that are in error are * not included in the summary. * * * * The endpoint supports the exact same search criteria as the endpoint * *transaction/prciedtransactions*. * * * * #### Supported operations * * * Get sales items and fee transactions * * * Search by invoice status * * * Search by fixed date period * * * Search by date range * * * Search by account * * * Search by card * * * Get sales items only * * * Search by transaction Id or location * * * Search by transaction posting date * * * Search by invoice number or date * * * Search by driver name or vehicle registration number * * * Search by card group * * * Search by fuel only transactions * * * Search by product * * * * This API fetches transactions for a period based on the below parameters and priority order: * * 1. InvoiceNumber * * 2. InvoiceDate * * 3. FromDate, ToDate * * 4. PostingFromDate, PostingToDate (Can be used only when IncludeFees = false) * * 5. InvoiceDateFrom, InvoiceDateTo * * 6. Period * * * * This API considers only one of the above set of parameters at a time. For example, if InvoiceNumber * and Period are provided in the input then Period is ignored and transactions associated to the given * invoice number are returned. * * * * If none of the above parameters are provided then last 7 days transactions will be fetched. * * @param requestId Mandatory UUID (according to RFC 4122 standards) for requests * and responses. This will be played back in the response from * the request. * @param body PricedSummary RequestBody * @return Response from the API call */ TransactionController.prototype.pricedTransactionsSummary = function (requestId, body, requestOptions) { return tslib_1.__awaiter(this, void 0, void 0, function () { var req, mapped; return tslib_1.__generator(this, function (_a) { req = this.createRequest('POST', '/transaction-data/v1/pricedtransactionssummary'); mapped = req.prepareArgs({ requestId: [requestId, (0, schema_js_1.string)()], body: [body, (0, schema_js_1.optional)(priceTransSummaryReq_js_1.priceTransSummaryReqSchema)], }); req.header('RequestId', mapped.requestId); req.header('Content-Type', 'application/json'); req.json(mapped.body); req.throwOn(400, errorObjectError_js_1.ErrorObjectError, 'The server cannot or will not process the request due to something that is perceived to be a client error (e.g., malformed request syntax, invalid request message framing, or deceptive request routing).'); req.throwOn(401, errorObjectError_js_1.ErrorObjectError, 'The request has not been applied because it lacks valid authentication credentials for the target resource.'); req.throwOn(403, errorObjectError_js_1.ErrorObjectError, 'Forbidden'); req.throwOn(404, errorObjectError_js_1.ErrorObjectError, 'The origin server did not find a current representation for the target resource or is not willing to disclose that one exists.'); req.throwOn(500, errorObjectError_js_1.ErrorObjectError, 'The server encountered an unexpected condition that prevented it from fulfilling the request.'); req.authenticate([{ bearerToken: true }]); return [2 /*return*/, req.callAsJson(pricedTransSummaryResp_js_1.pricedTransSummaryRespSchema, requestOptions)]; }); }); }; /** * This API allows querying transaction data (i.e. Priced, Billed and Unbilled sales items) for * multiple payers. It provides a flexible search criteria and supports paging. * * * * Transactions that are posted but not yet priced, billed or that are in error will not be returned by * this API. The API also supports returning Fee Items. * * * * At least one payer should be provided. Multiple payers must belong to the same payer group. * * * * #### Supported operations * * * Get sales items and fee transactions for multiple payers * * * Search by invoice status * * * Search by fixed date period * * * Search by date range * * * Get sales items only for multiple payers * * * Search by transaction location * * * Search by transaction posting date * * * Search by invoice number or date * * * Search by fuel only transactions * * * * This API fetches transactions for a period based on the below parameters and priority order: * * 1. InvoiceNumber * * 2. InvoiceDate * * 3. FromDate, ToDate * * 4. PostingFromDate, PostingToDate (Can be used only when IncludeFees = false) * * 5. InvoiceDateFrom, InvoiceDateTo * * 6. Period * * * * This API considers only one of the above set of parameters at a time. For example, if InvoiceNumber * and Period are provided in the input then Period is ignored and transactions associated to the given * invoice number are returned. * * * * If none of the above parameters are provided then last 7 days transactions will be fetched. * * @param requestId Mandatory UUID (according to RFC 4122 standards) for * requests and responses. This will be played back in the * response from the request. * @param body MultiPayer RequestBody * @return Response from the API call */ TransactionController.prototype.multipricedTransactions = function (requestId, body, requestOptions) { return tslib_1.__awaiter(this, void 0, void 0, function () { var req, mapped; return tslib_1.__generator(this, function (_a) { req = this.createRequest('POST', '/transaction-data/v1/multipayerspricedtransactions'); mapped = req.prepareArgs({ requestId: [requestId, (0, schema_js_1.string)()], body: [body, (0, schema_js_1.optional)(multiPricedTransactionReq_js_1.multiPricedTransactionReqSchema)], }); req.header('RequestId', mapped.requestId); req.header('Content-Type', 'application/json'); req.json(mapped.body); req.throwOn(400, errorObjectError_js_1.ErrorObjectError, 'The server cannot or will not process the request due to something that is perceived to be a client error (e.g., malformed request syntax, invalid request message framing, or deceptive request routing).'); req.throwOn(401, errorObjectError_js_1.ErrorObjectError, 'The request has not been applied because it lacks valid authentication credentials for the target resource.'); req.throwOn(403, errorObjectError_js_1.ErrorObjectError, 'Forbidden'); req.throwOn(404, errorObjectError_js_1.ErrorObjectError, 'The origin server did not find a current representation for the target resource or is not willing to disclose that one exists.'); req.throwOn(500, errorObjectError_js_1.ErrorObjectError, 'The server encountered an unexpected condition that prevented it from fulfilling the request.'); req.authenticate([{ bearerToken: true }]); return [2 /*return*/, req.callAsJson(multiPricedTransactionRes_js_1.multiPricedTransactionResSchema, requestOptions)]; }); }); }; /** * This operation is to provide the expenditure analysis for a card for the past 7 months. * The response contains a daily summary of the transactions (billed & unbilled) from 1st of the last 7 * months for the requested card grouped by card, site-group and product. * * @param requestId Mandatory UUID (according to RFC 4122 standards) for requests * and responses. This will be played back in the response from the * request. * @param body Card Usage Summary RequestBody * @return Response from the API call */ TransactionController.prototype.cardUsageSummary = function (requestId, body, requestOptions) { return tslib_1.__awaiter(this, void 0, void 0, function () { var req, mapped; return tslib_1.__generator(this, function (_a) { req = this.createRequest('POST', '/transaction-data/v1/cardusagesummary'); mapped = req.prepareArgs({ requestId: [requestId, (0, schema_js_1.string)()], body: [body, (0, schema_js_1.optional)(cardUsageSummaryReq_js_1.cardUsageSummaryReqSchema)], }); req.header('RequestId', mapped.requestId); req.header('Content-Type', 'application/json'); req.json(mapped.body); req.throwOn(400, errorObjectError_js_1.ErrorObjectError, 'The server cannot or will not process the request due to something that is perceived to be a client error (e.g., malformed request syntax, invalid request message framing, or deceptive request routing).'); req.throwOn(401, errorObjectError_js_1.ErrorObjectError, 'The request has not been applied because it lacks valid authentication credentials for the target resource.'); req.throwOn(403, errorObjectError_js_1.ErrorObjectError, 'Forbidden'); req.throwOn(404, errorObjectError_js_1.ErrorObjectError, 'The origin server did not find a current representation for the target resource or is not willing to disclose that one exists.'); req.throwOn(500, errorObjectError_js_1.ErrorObjectError, 'The server encountered an unexpected condition that prevented it from fulfilling the request.'); req.authenticate([{ bearerToken: true }]); return [2 /*return*/, req.callAsJson(cardUsageSummaryRes_js_1.cardUsageSummaryResSchema, requestOptions)]; }); }); }; /** * - This API provides the details of the bonus and/or association bonus rules setup for the given * payer and that are active on the current date. * - This API also returns the details of the monthly breakup of current period consumption as well as * the details of the previously calculated bonus and consumption of the applicable payers. * * * * @param requestId Mandatory UUID (according to RFC 4122 standards) for requests * and responses. This will be played back in the response from the * request. * @param body VolumeBasedBonus RequestBody * @return Response from the API call */ TransactionController.prototype.volumeBasedBonus = function (requestId, body, requestOptions) { return tslib_1.__awaiter(this, void 0, void 0, function () { var req, mapped; return tslib_1.__generator(this, function (_a) { req = this.createRequest('POST', '/transaction-data/v1/volumebasedbonuss'); mapped = req.prepareArgs({ requestId: [requestId, (0, schema_js_1.string)()], body: [body, (0, schema_js_1.optional)(volumeBasedBonusReq_js_1.volumeBasedBonusReqSchema)], }); req.header('RequestId', mapped.requestId); req.header('Content-Type', 'application/json'); req.json(mapped.body); req.throwOn(400, errorObjectError_js_1.ErrorObjectError, 'The server cannot or will not process the request due to something that is perceived to be a client error (e.g., malformed request syntax, invalid request message framing, or deceptive request routing).'); req.throwOn(401, errorObjectError_js_1.ErrorObjectError, 'The request has not been applied because it lacks valid authentication credentials for the target resource.'); req.throwOn(403, errorObjectError_js_1.ErrorObjectError, 'Forbidden'); req.throwOn(404, errorObjectError_js_1.ErrorObjectError, 'The origin server did not find a current representation for the target resource or is not willing to disclose that one exists.'); req.throwOn(500, errorObjectError_js_1.ErrorObjectError, 'The server encountered an unexpected condition that prevented it from fulfilling the request.'); req.authenticate([{ bearerToken: true }]); return [2 /*return*/, req.callAsJson(volumeBasedBonusRes_js_1.volumeBasedBonusResSchema, requestOptions)]; }); }); }; /** * - This API will return the details of the in arrear fee rule applied to the payer along with details * of locations, products, tiers as applied. * * - It will also show historical and current volume consumption and related tier applied for the * following month. * * * * @param requestId Mandatory UUID (according to RFC 4122 standards) for requests * and responses. This will be played back in the response from * the request. * @param body VolumeBasedPricing RequestBody * @return Response from the API call */ TransactionController.prototype.volumeBasedPricing = function (requestId, body, requestOptions) { return tslib_1.__awaiter(this, void 0, void 0, function () { var req, mapped; return tslib_1.__generator(this, function (_a) { req = this.createRequest('POST', '/transaction-data/v1/volumebasedpricing'); mapped = req.prepareArgs({ requestId: [requestId, (0, schema_js_1.string)()], body: [body, (0, schema_js_1.optional)(volumeBasedPricingReq_js_1.volumeBasedPricingReqSchema)], }); req.header('RequestId', mapped.requestId); req.header('Content-Type', 'application/json'); req.json(mapped.body); req.throwOn(400, errorObjectError_js_1.ErrorObjectError, 'The server cannot or will not process the request due to something that is perceived to be a client error (e.g., malformed request syntax, invalid request message framing, or deceptive request routing).'); req.throwOn(401, errorObjectError_js_1.ErrorObjectError, 'The request has not been applied because it lacks valid authentication credentials for the target resource.'); req.throwOn(403, errorObjectError_js_1.ErrorObjectError, 'Forbidden'); req.throwOn(404, errorObjectError_js_1.ErrorObjectError, 'The origin server did not find a current representation for the target resource or is not willing to disclose that one exists.'); req.throwOn(500, errorObjectError_js_1.ErrorObjectError, 'The server encountered an unexpected condition that prevented it from fulfilling the request.'); req.authenticate([{ bearerToken: true }]); return [2 /*return*/, req.callAsJson(volumeBasedPricingRes_js_1.volumeBasedPricingResSchema, requestOptions)]; }); }); }; /** * This API returns the fee/charges levied from a customer's account in a billing period or date range. * The API returns both billed and unbilled fee items. * * * * To get the summary of charges, the endpoint *transaction/feessummary* should be called with the same * input criteria. * * * * #### Supported operations * * * Get fees by invoice status * * * Get fees by date period * * * Get fees by account * * * Get fees by card Id or PAN * * * Get fees by fee type charges * * * Get fees including cancelled items * * * Get fees by line item description * * * Get fees by product * * @param requestId Mandatory UUID (according to RFC 4122 standards) for requests * and responses. This will be played back in the response from the * request. * @param body Transaction Fees RequestBody * @return Response from the API call */ TransactionController.prototype.fees = function (requestId, body, requestOptions) { return tslib_1.__awaiter(this, void 0, void 0, function () { var req, mapped; return tslib_1.__generator(this, function (_a) { req = this.createRequest('POST', '/transaction-data/v1/fees'); mapped = req.prepareArgs({ requestId: [requestId, (0, schema_js_1.string)()], body: [body, (0, schema_js_1.optional)(transactionFeesReq_js_1.transactionFeesReqSchema)], }); req.header('RequestId', mapped.requestId); req.header('Content-Type', 'application/json'); req.json(mapped.body); req.throwOn(400, errorObjectError_js_1.ErrorObjectError, 'The server cannot or will not process the request due to something that is perceived to be a client error (e.g., malformed request syntax, invalid request message framing, or deceptive request routing).'); req.throwOn(401, errorObjectError_js_1.ErrorObjectError, 'The request has not been applied because it lacks valid authentication credentials for the target resource.'); req.throwOn(403, errorObjectError_js_1.ErrorObjectError, 'Forbidden'); req.throwOn(404, errorObjectError_js_1.ErrorObjectError, 'The origin server did not find a current representation for the target resource or is not willing to disclose that one exists.'); req.throwOn(500, errorObjectError_js_1.ErrorObjectError, 'The server encountered an unexpected condition that prevented it from fulfilling the request.'); req.authenticate([{ bearerToken: true }]); return [2 /*return*/, req.callAsJson(transactionFeesRes_js_1.transactionFeesResSchema, requestOptions)]; }); }); }; /** * This API returns the summary data of the fee/charges levied from a customer's account in a billing * period or date range. The API returns both billed and unbilled fee items. * * * * The endpoint supports the exact same search criteria as the endpoint *transaction/feessummary*. * * * * #### Supported operations * * * Get fees by invoice status * * * Get fees by date period * * * Get fees by account * * * Get fees by card Id or PAN * * * Get fees by fee type charges * * * Get fees including cancelled items * * * Get fees by line item description * * * Get fees by product * * @param requestId Mandatory UUID (according to RFC 4122 standards) for * requests and responses. This will be played back in the * response from the request. * @param body FeeSummary RequestBody * @return Response from the API call */ TransactionController.prototype.feeSummaryResponse = function (requestId, body, requestOptions) { return tslib_1.__awaiter(this, void 0, void 0, function () { var req, mapped; return tslib_1.__generator(this, function (_a) { req = this.createRequest('POST', '/transaction-data/v1/feessummary'); mapped = req.prepareArgs({ requestId: [requestId, (0, schema_js_1.string)()], body: [body, (0, schema_js_1.optional)(transactionFeesSummaryReq_js_1.transactionFeesSummaryReqSchema)], }); req.header('RequestId', mapped.requestId); req.header('Content-Type', 'application/json'); req.json(mapped.body); req.throwOn(400, errorObjectError_js_1.ErrorObjectError, 'The server cannot or will not process the request due to something that is perceived to be a client error (e.g., malformed request syntax, invalid request message framing, or deceptive request routing).'); req.throwOn(401, errorObjectError_js_1.ErrorObjectError, 'The request has not been applied because it lacks valid authentication credentials for the target resource.'); req.throwOn(403, errorObjectError_js_1.ErrorObjectError, 'Forbidden'); req.throwOn(404, errorObjectError_js_1.ErrorObjectError, 'The origin server did not find a current representation for the target resource or is not willing to disclose that one exists.'); req.throwOn(500, errorObjectError_js_1.ErrorObjectError, 'The server encountered an unexpected condition that prevented it from fulfilling the request.'); req.authenticate([{ bearerToken: true }]); return [2 /*return*/, req.callAsJson(feeSummaryResponse_js_1.feeSummaryResponseSchema, requestOptions)]; }); }); }; /** * - This API returns the customer an overview of how many transactions, how much fuel volume used over * a given period and the total volume used by a card * * - This operation response will contains card & transaction details for given period aggregated by * payer, account, cardGroup, PAN, DriverName and VRN * * * * @param requestId Mandatory UUID (according to RFC 4122 standards) for requests * and responses. This will be played back in the response from the * request. * @param body FuelConsumption RequestBody * @return Response from the API call */ TransactionController.prototype.fuelConsumption = function (requestId, body, requestOptions) { return tslib_1.__awaiter(this, void 0, void 0, function () { var req, mapped; return tslib_1.__generator(this, function (_a) { req = this.createRequest('POST', '/transaction-data/v1/fuelconsumption'); mapped = req.prepareArgs({ requestId: [requestId, (0, schema_js_1.string)()], body: [body, (0, schema_js_1.optional)(fuelConsumptionReq_js_1.fuelConsumptionReqSchema)], }); req.header('RequestId', mapped.requestId); req.header('Content-Type', 'application/json'); req.json(mapped.body); req.throwOn(400, errorObjectError_js_1.ErrorObjectError, 'The server cannot or will not process the request due to something that is perceived to be a client error (e.g., malformed request syntax, invalid request message framing, or deceptive request routing).'); req.throwOn(401, errorObjectError_js_1.ErrorObjectError, 'The request has not been applied because it lacks valid authentication credentials for the target resource.'); req.throwOn(403, errorObjectError_js_1.ErrorObjectError, 'Forbidden'); req.throwOn(404, errorObjectError_js_1.ErrorObjectError, 'The origin server did not find a current representation for the target resource or is not willing to disclose that one exists.'); req.throwOn(500, errorObjectError_js_1.ErrorObjectError, 'The server encountered an unexpected condition that prevented it from fulfilling the request.'); req.authenticate([{ bearerToken: true }]); return [2 /*return*/, req.callAsJson(fuelConsumptionResponse_js_1.fuelConsumptionResponseSchema, requestOptions)]; }); }); }; /** * - This API allows the users to update the odometer readings on the sales items (transaction data) * * - This is an asynchronous operation. If opted, the user will be notified on completion of processing. * * @param requestId Mandatory UUID (according to RFC 4122 standards) for requests * and responses. This will be played back in the response from * the request. * @param body updateOdometer RequestBody * @return Response from the API call */ TransactionController.prototype.updateOdometer = function (requestId, body, requestOptions) { return tslib_1.__awaiter(this, void 0, void 0, function () { var req, mapped; return tslib_1.__generator(this, function (_a) { req = this.createRequest('POST', '/transaction-data/v1/updateodometer'); mapped = req.prepareArgs({ requestId: [requestId, (0, schema_js_1.string)()], body: [body, (0, schema_js_1.optional)(updateOdometerRequest_js_1.updateOdometerRequestSchema)], }); req.header('RequestId', mapped.requestId); req.header('Content-Type', 'application/json'); req.json(mapped.body); req.throwOn(400, errorObjectError_js_1.ErrorObjectError, 'The server cannot or will not process the request due to something that is perceived to be a client error (e.g., malformed request syntax, invalid request message framing, or deceptive request routing).'); req.throwOn(401, errorObjectError_js_1.ErrorObjectError, 'The request has not been applied because it lacks valid authentication credentials for the target resource.'); req.throwOn(403, errorObjectError_js_1.ErrorObjectError, 'Forbidden'); req.throwOn(404, errorObjectError_js_1.ErrorObjectError, 'The origin server did not find a current representation for the target resource or is not willing to disclose that one exists.'); req.throwOn(500, errorObjectError_js_1.ErrorObjectError, 'The server encountered an unexpected condition that prevented it from fulfilling the request.'); req.authenticate([{ bearerToken: true }]); return [2 /*return*/, req.callAsJson(updateOdometerResp_js_1.updateOdometerRespSchema, requestOptions)]; }); }); }; /** * - This API provides the details of the Cards or Transaction related exceptions based on the given * conditions for the Requested period. * - This API will return the Transactions related exceptions when the OutputType input parameter is * passed as ‘Transaction’ else will return the Cards related exceptions. * * * * @param requestId Mandatory UUID (according to RFC 4122 standards) for * requests and responses. This will be played back in the * response from the request. * @param body Transaction Exceptions RequestBody * @return Response from the API call */ TransactionController.prototype.transactionExceptions = function (requestId, body, requestOptions) { return tslib_1.__awaiter(this, void 0, void 0, function () { var req, mapped; return tslib_1.__generator(this, function (_a) { req = this.createRequest('POST', '/transaction-data/v1/exceptions'); mapped = req.prepareArgs({ requestId: [requestId, (0, schema_js_1.string)()], body: [body, (0, schema_js_1.optional)(transactionExceptionsReq_js_1.transactionExceptionsReqSchema)], }); req.header('RequestId', mapped.requestId); req.header('Content-Type', 'application/json'); req.json(mapped.body); req.throwOn(400, errorObjectError_js_1.ErrorObjectError, 'The server cannot or will not process the request due to something that is perceived to be a client error (e.g., malformed request syntax, invalid request message framing, or deceptive request routing).'); req.throwOn(401, errorObjectError_js_1.ErrorObjectError, 'The request has not been applied because it lacks valid authentication credentials for the target resource.'); req.throwOn(403, errorObjectError_js_1.ErrorObjectError, 'Forbidden'); req.throwOn(404, errorObjectError_js_1.ErrorObjectError, 'The origin server did not find a current representation for the target resource or is not willing to disclose that one exists.'); req.throwOn(500, errorObjectError_js_1.ErrorObjectError, 'The server encountered an unexpected condition that prevented it from fulfilling the request.'); req.authenticate([{ bearerToken: true }]); return [2 /*return*/, req.callAsJson(transactionExceptionsRes_js_1.transactionExceptionsResSchema, requestOptions)]; }); }); }; /** * This endpoint allows querying last 48 hours of transaction data of Shell Card (i.e. Priced, Billed, * Unbilled etc. sales items). It provides a flexible search criteria and supports pagination. E.g., if * the request is made at 08:30 AM on 18 Aug 2022 then transactions until 16 Aug 2022 08:30 AM * (including) can be retrieved. * * * #### Supported operations * * * Search by Date and Time range (within the last 48 hours only) * * * Search by Payer and/or Account number * * * Search by Card * * * Search by Purchased Country * * * Search by Transaction posting date * * * Search by Driver Name or Vehicle registration number * * * Search by Fuel only transactions * * * Search by Product and/or Product group * * @param requestId Mandatory UUID (according to RFC 4122 standards) for * requests and responses. This will be played back in the * response from the request. * @param body New Recent Transaction RequestBody * @return Response from the API call */ TransactionController.prototype.recentTransactionsNew = function (requestId, body, requestOptions) { return tslib_1.__awaiter(this, void 0, void 0, function () { var req, mapped; return tslib_1.__generator(this, function (_a) { req = this.createRequest('POST', '/transaction-data/v1/recent'); mapped = req.prepareArgs({ requestId: [requestId, (0, schema_js_1.string)()], body: [body, (0, schema_js_1.optional)(recentTransactionRequest_js_1.recentTransactionRequestSchema)], }); req.header('RequestId', mapped.requestId); req.header('Content-Type', 'application/json'); req.json(mapped.body); req.throwOn(400, errorObjectError_js_1.ErrorObjectError, 'The server cannot or will not process the request due to something that is perceived to be a client error (e.g., malformed request syntax, invalid request message framing, or deceptive request routing).'); req.throwOn(401, errorObjectError_js_1.ErrorObjectError, 'The request has not been applied because it lacks valid authentication credentials for the target resource.'); req.throwOn(403, errorObjectError_js_1.ErrorObjectError, 'Forbidden'); req.throwOn(404, errorObjectError_js_1.ErrorObjectError, 'The origin server did not find a current representation for the target resource or is not willing to disclose that one exists.'); req.throwOn(500, errorObjectError_js_1.ErrorObjectError, 'The server encountered an unexpected condition that prevented it from fulfilling the request.'); req.authenticate([{ bearerToken: true }]); return [2 /*return*/, req.callAsJson(recentTransactionsResponse_js_1.recentTransactionsResponseSchema, requestOptions)]; }); }); }; /** * This API allows querying transaction data (i.e. Priced, Billed and Unbilled sales items). It * provides a flexible search criteria and supports paging. * * The version 2 is an enhancement to the version 1 where EV transactions and their details are added * in the response. * * * * Transactions that are posted but not yet priced, billed or that are in error will not be returned by * this API. The API also supports returning Fee Items. * * * * #### Supported operations * * * Get sales items and fee transactions * * * Search by invoice status * * * Search by fixed date period * * * Search by date range * * * Search by account * * * Search by card * * * Get sales items only * * * Search by transaction Id or location * * * Search by transaction posting date * * * Search by invoice number or date * * * Search by driver name or vehicle registration number * * * Search by card group * * * Search by fuel only transactions * * * Search by product * * * EV transaction details - Below are EV specific parameters * * * EVOperator * * * EVSerialId * * * EVChargePointSerial * * * EVChargePointConnectorType * * * EVChargePointConnectorTypeDescription * * * EVChargeDuration * * * EVChargeStartDate * * * EVChargeStartTime * * * EVChargeEndDate * * * EVChargeEndTime * * @param requestId Mandatory UUID (according to RFC 4122 standards) for * requests and responses. This will be played back in the * response from the request. * @param body Priced TransactionV2 RequestBody * @return Response from the API call */ TransactionController.prototype.pricedTransactionsV2 = function (requestId, body, requestOptions) { return tslib_1.__awaiter(this, void 0, void 0, function () { var req, mapped; return tslib_1.__generator(this, function (_a) { req = this.createRequest('POST', '/transaction-data/v1/priced'); mapped = req.prepareArgs({ requestId: [requestId, (0, schema_js_1.string)()], body: [body, (0, schema_js_1.optional)(pricedTransactionRequestV2_js_1.pricedTransactionRequestV2Schema)], }); req.header('RequestId', mapped.requestId); req.header('Content-Type', 'application/json'); req.json(mapped.body); req.throwOn(400, errorObjectError_js_1.ErrorObjectError, 'The server cannot or will not process the request due to something that is perceived to be a client error (e.g., malformed request syntax, invalid request message framing, or deceptive request routing).'); req.throwOn(401, errorObjectError_js_1.ErrorObjectError, 'The request has not been applied because it lacks valid authentication credentials for the target resource.'); req.throwOn(403, errorObjectError_js_1.ErrorObjectError, 'Forbidden'); req.throwOn(404, errorObjectError_js_1.ErrorObjectError, 'The origin server did not find a current representation for the target resource or is not willing to disclose that one exists.'); req.throwOn(500, errorObjectError_js_1.ErrorObjectError, 'The server encountered an unexpected condition that prevented it from fulfilling the request.'); req.authenticate([{ bearerToken: true }]); return [2 /*return*/, req.callAsJson(pricedTransactionResponseV2_js_1.pricedTransactionResponseV2Schema, requestOptions)]; }); }); }; return TransactionController; }(baseController_js_1.BaseController)); exports.TransactionController = TransactionController; //# sourceMappingURL=transactionController.js.map