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
319 lines • 18.5 kB
JavaScript
/**
* Shell Data & Reporting APIsLib
*
* This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ).
*/
import { accountReqSchema } from '../models/accountReq.js';
import { accountResSchema } from '../models/accountRes.js';
import { auditReqSchema } from '../models/auditReq.js';
import { auditResponseSchema } from '../models/auditResponse.js';
import { cardGroupReqSchema } from '../models/cardGroupReq.js';
import { cardGroupResSchema } from '../models/cardGroupRes.js';
import { cardTypeReqSchema } from '../models/cardTypeReq.js';
import { cardTypeResSchema } from '../models/cardTypeRes.js';
import { customerPriceListReqSchema, } from '../models/customerPriceListReq.js';
import { customerPriceListResSchema, } from '../models/customerPriceListRes.js';
import { customerReqSchema } from '../models/customerReq.js';
import { customerResSchema } from '../models/customerRes.js';
import { loggedInUserReqSchema, } from '../models/loggedInUserReq.js';
import { loggedInUserResSchema, } from '../models/loggedInUserRes.js';
import { payerReqSchema } from '../models/payerReq.js';
import { payerResSchema } from '../models/payerRes.js';
import { optional, string } from '../schema.js';
import { BaseController } from './baseController.js';
import { ErrorObjectError } from '../errors/errorObjectError.js';
export class CustomerController extends BaseController {
/**
* This operation allows querying the user data of the logged in user.
* This operation should be called only after successful authentication of the end user in client
* application. This operation will return the user access details such as payers and/or accounts.
* This operation will also validate that logged in user has access to the requested operation, on
* failure it will return HasAPIAccess flag as false in the response.
*
* @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
* @return Response from the API call
*/
async userLoggedinuser(requestId, body, requestOptions) {
const req = this.createRequest('POST', '/user-management/v1/loggedinuser');
const mapped = req.prepareArgs({
requestId: [requestId, string()],
body: [body, loggedInUserReqSchema],
});
req.header('RequestId', mapped.requestId);
req.header('Content-Type', 'application/json');
req.json(mapped.body);
req.throwOn(400, 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).\n');
req.throwOn(401, ErrorObjectError, 'The request has not been applied because it lacks valid authentication credentials for the target resource.\n');
req.throwOn(403, ErrorObjectError, 'Forbidden');
req.throwOn(404, ErrorObjectError, 'The origin server did not find a current representation for the target resource or is not willing to disclose that one exists.\n');
req.throwOn(500, ErrorObjectError, 'The server encountered an unexpected condition that prevented it from fulfilling the request.\n');
req.authenticate([{ bearerToken: true }]);
return req.callAsJson(loggedInUserResSchema, requestOptions);
}
/**
* This API allows querying the payer accounts details from the Shell Cards
* Platform. It provides flexible search criteria for searching payer
* information and supports paging.
*
* Paging is applicable only when all the
* payers passed in the input are from the same ColCo.
*
* However, paging will
* be ignored and the API will return all the matching data by merging the
* data queried from each ColCo when payers passed in the input are from
* multiple ColCos.
*
*
* @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
* @return Response from the API call
*/
async customerpayers(requestId, body, requestOptions) {
const req = this.createRequest('POST', '/customer-management/v1/payers');
const mapped = req.prepareArgs({
requestId: [requestId, string()],
body: [body, payerReqSchema],
});
req.header('RequestId', mapped.requestId);
req.header('Content-Type', 'application/json');
req.json(mapped.body);
req.throwOn(400, 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).\n');
req.throwOn(401, ErrorObjectError, 'The request has not been applied because it lacks valid authentication credentials for the target resource.\n');
req.throwOn(403, ErrorObjectError, 'Forbidden');
req.throwOn(404, ErrorObjectError, 'The origin server did not find a current representation for the target resource or is not willing to disclose that one exists.\n');
req.throwOn(500, ErrorObjectError, 'The server encountered an unexpected condition that prevented it from fulfilling the request.\n');
req.authenticate([{ bearerToken: true }]);
return req.callAsJson(payerResSchema, requestOptions);
}
/**
* This API allows querying the card delivery addresses of a given account from the Shell Cards
* Platform. Only active delivery addresses will be returned.
*
*
* @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
* @return Response from the API call
*/
async customerdetail(requestId, body, requestOptions) {
const req = this.createRequest('POST', '/customer-management/v1/customer');
const mapped = req.prepareArgs({
requestId: [requestId, string()],
body: [body, customerReqSchema],
});
req.header('RequestId', mapped.requestId);
req.header('Content-Type', 'application/json');
req.json(mapped.body);
req.throwOn(400, 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).\n');
req.throwOn(401, ErrorObjectError, 'The request has not been applied because it lacks valid authentication credentials for the target resource.\n');
req.throwOn(403, ErrorObjectError, 'Forbidden');
req.throwOn(404, ErrorObjectError, 'The origin server did not find a current representation for the target resource or is not willing to disclose that one exists.\n');
req.throwOn(500, ErrorObjectError, 'The server encountered an unexpected condition that prevented it from fulfilling the request.\n');
req.authenticate([{ bearerToken: true }]);
return req.callAsJson(customerResSchema, requestOptions);
}
/**
* This API allows querying the customer account details from the Shell Cards Platform. It provides a
* flexible search criterion and supports pagination.
*
* @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
* @return Response from the API call
*/
async postCardAccounts(requestId, body, requestOptions) {
const req = this.createRequest('POST', '/customer-management/v1/accounts');
const mapped = req.prepareArgs({
requestId: [requestId, string()],
body: [body, accountReqSchema],
});
req.header('RequestId', mapped.requestId);
req.header('Content-Type', 'application/json');
req.json(mapped.body);
req.throwOn(400, 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).\n');
req.throwOn(401, ErrorObjectError, 'The request has not been applied because it lacks valid authentication credentials for the target resource.\n');
req.throwOn(403, ErrorObjectError, 'Forbidden');
req.throwOn(404, ErrorObjectError, 'The origin server did not find a current representation for the target resource or is not willing to disclose that one exists.\n');
req.throwOn(500, ErrorObjectError, 'The server encountered an unexpected condition that prevented it from fulfilling the request.\n');
req.authenticate([{ bearerToken: true }]);
return req.callAsJson(accountResSchema, requestOptions);
}
/**
*
* This API provides allows querying the active card types that are associated to the given account.
*
* The API returns the card type configurations, purchase categories associated with the card type and
* the card type restriction limits.
*
*
* @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
* @return Response from the API call
*/
async customercardtypev(requestId, body, requestOptions) {
const req = this.createRequest('POST', '/customer-management/v1/cardtype');
const mapped = req.prepareArgs({
requestId: [requestId, string()],
body: [body, cardTypeReqSchema],
});
req.header('RequestId', mapped.requestId);
req.header('Content-Type', 'application/json');
req.json(mapped.body);
req.throwOn(400, 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).\n');
req.throwOn(401, ErrorObjectError, 'The request has not been applied because it lacks valid authentication credentials for the target resource.\n');
req.throwOn(403, ErrorObjectError, 'Forbidden');
req.throwOn(404, ErrorObjectError, 'The origin server did not find a current representation for the target resource or is not willing to disclose that one exists.\n');
req.throwOn(500, ErrorObjectError, 'The server encountered an unexpected condition that prevented it from fulfilling the request.\n');
req.authenticate([{ bearerToken: true }]);
return req.callAsJson(cardTypeResSchema, requestOptions);
}
/**
* This API allows querying the card group details from the Shell Cards
* Platform. It provides flexible search criteria and supports paging.
*
* When the account is not passed in the input and card group type is configured as
* ‘Vertical’ in the cards platform, this API will return all card groups from
* the payer as well as from all the accounts under the payer.
*
* When the account is not passed in the input and card group type is configured as
* ‘Horizontal’ in cards platform, this API will return all card groups
* configured directly under the payer.
*
*
* @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
* @return Response from the API call
*/
async cardgroups(requestId, body, requestOptions) {
const req = this.createRequest('POST', '/customer-management/v1/cardgroups');
const mapped = req.prepareArgs({
requestId: [requestId, string()],
body: [body, cardGroupReqSchema],
});
req.header('RequestId', mapped.requestId);
req.header('Content-Type', 'application/json');
req.json(mapped.body);
req.throwOn(400, 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).\n');
req.throwOn(401, ErrorObjectError, 'The request has not been applied because it lacks valid authentication credentials for the target resource.\n');
req.throwOn(403, ErrorObjectError, 'Forbidden');
req.throwOn(404, ErrorObjectError, 'The origin server did not find a current representation for the target resource or is not willing to disclose that one exists.\n');
req.throwOn(500, ErrorObjectError, 'The server encountered an unexpected condition that prevented it from fulfilling the request.\n');
req.authenticate([{ bearerToken: true }]);
return req.callAsJson(cardGroupResSchema, requestOptions);
}
/**
* This operation allows users to fetch audit data of account or card operations performed by users of
* a given customer
*
* The audit data includes details of below API operations
*
*
*
* * Order Card
*
* * Create Card Group
*
* * PIN reminder
*
* * Move Cards
*
* * Update Card Status
*
* * Update Card Group
*
* * Auto renew
*
* * Bulk card order
*
* * Bulk card block
*
* * Bulk Card Order (Multi Account)
*
* * BCOSummary
*
* * BCOMultiAccountSummary
*
* * BCBSummary
*
* * Mobile Payment Registration
*
* * Fund Transfer (Scheduled & Realtime)
*
* * Delivery Address Update.
*
* @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 request body
* @return Response from the API call
*/
async auditReport(requestId, body, requestOptions) {
const req = this.createRequest('POST', '/customer-management/v1/auditreport');
const mapped = req.prepareArgs({
requestId: [requestId, string()],
body: [body, optional(auditReqSchema)],
});
req.header('RequestId', mapped.requestId);
req.header('Content-Type', 'application/json');
req.json(mapped.body);
req.throwOn(400, 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).\n');
req.throwOn(401, ErrorObjectError, 'The request has not been applied because it lacks valid authentication credentials for the target resource.\n');
req.throwOn(403, ErrorObjectError, 'Forbidden');
req.throwOn(404, ErrorObjectError, 'The origin server did not find a current representation for the target resource or is not willing to disclose that one exists.\n');
req.throwOn(500, ErrorObjectError, 'The server encountered an unexpected condition that prevented it from fulfilling the request.\n');
req.authenticate([{ bearerToken: true }]);
return req.callAsJson(auditResponseSchema, requestOptions);
}
/**
* - This operation fetches the International and National Price List and discount values set on pump
* prices & List Prices
*
* - It allows searching price list and discount values set on pump prices that are applicable for a
* given customer
*
*
*
* **Note**: Accounts with cancelled status will not be considered for this operation for the
* configured
*
*
*
* - When the search is based on customer specific price list then the customer price list is returned
* based on the associated pricing customer.
*
* - The discount values set on pump prices, which are returned by the operation are always customer
* specific values based on the customer associated price rules.
*
*
*
*
*
* @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 Customerdetails request body
* @return Response from the API call
*/
async customerPriceList(requestId, body, requestOptions) {
const req = this.createRequest('POST', '/customer-management/v1/pricelist');
const mapped = req.prepareArgs({
requestId: [requestId, string()],
body: [body, optional(customerPriceListReqSchema)],
});
req.header('RequestId', mapped.requestId);
req.header('Content-Type', 'application/json');
req.json(mapped.body);
req.throwOn(400, 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, 'The request has not been applied because it lacks valid authentication credentials for the target resource.');
req.throwOn(403, ErrorObjectError, 'Forbidden');
req.throwOn(404, 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, 'The server encountered an unexpected condition that prevented it from fulfilling the request.');
req.authenticate([{ bearerToken: true }]);
return req.callAsJson(customerPriceListResSchema, requestOptions);
}
}
//# sourceMappingURL=customerController.js.map