UNPKG

@magic.batua/recharge

Version:

The Recharge module manages all the mobile prepaid, datacard and DTH recharge functionalities of the Magic Batua platform.

122 lines 3.93 kB
"use strict"; /** * @module Fixedline * @overview Defines the `Fixedline` class. * * @author Animesh Mishra <hello@animesh.ltd> * @copyright © Animesh Ltd. All Rights Reserved. */ Object.defineProperty(exports, "__esModule", { value: true }); const Request = require("request-promise-native"); const RechargeError = require("./RechargeError"); const Operator_1 = require("./Operator"); const index_1 = require("../index"); /** * Manages all fixedline bill handling and payments. */ class Fixedline { constructor(json) { this.operator = json.operator; this.std = json.std; this.phone = json.phone; this.amount = json.amount; this.type = json.type; this.accountNumber = json.accountNumber; } /** * Pays a mobile postpaid bill. */ async Pay(creds, live = false) { let options = { method: "GET", uri: `https://${creds.baseURL}/recharge/bill`, headers: { Accept: "application/json" }, qs: { client_id: creds.merchantID, client_key: creds.merchantKey, std_code: this.std, number: `${this.std}${this.phone}`, cust_no: `${this.phone}`, cust_acc: this.accountNumber, bsnl_type: this.type, operator_code: this.operator.code, amount: this.amount, live: live } }; let response = await Request(options); response = JSON.parse(response); let error = RechargeError.Check(response); if (error) { throw error; } return new index_1.RechargeBill(this, response); } // // Static Methods // /** * Returns a list of all mobile postpaid operators supported by Rocket in Pocket * API. */ static async GetOperators(creds) { let options = { method: "GET", uri: `https://${creds.baseURL}/operators/bill`, headers: { Accept: "application/json" }, qs: { client_id: creds.merchantID, client_key: creds.merchantKey } }; let response = await Request(options); response = JSON.parse(response); let error = RechargeError.Check(response); if (error) { throw error; } let operators = Array(); for (var operator of response) { operators.push(new Operator_1.Operator(operator)); } return operators; } /** * Returns the status of a postpaid bill payment done previously. We'll make use of Rocket in * Pocket's callback URL mechanism instead, so this will largely acts as a backup. * * @param creds Merchant credentials to connect to the Rocket in Pocket API * @param vendorID ID returned by Rocket in Pocket after successful recharge request */ static async CheckStatus(creds, vendorID) { let options = { method: "GET", uri: `https://${creds.baseURL}/recharge/${vendorID}`, headers: { Accept: "application/json" }, qs: { client_id: creds.merchantID, client_key: creds.merchantKey } }; let response = await Request(options); response = JSON.parse(response); let error = RechargeError.Check(response); if (error) { throw error; } return { vendorReference: response.rocket_trans_id, operatorReference: response.opr_transid, status: response.status, date: new Date(response.datetime) }; } } exports.Fixedline = Fixedline; //# sourceMappingURL=Fixedline.js.map