@magic.batua/recharge
Version:
The Recharge module manages all the mobile prepaid, datacard and DTH recharge functionalities of the Magic Batua platform.
181 lines (160 loc) • 7.69 kB
HTML
<html lang="en">
<head>
<meta charset="utf-8">
<title>Source/Fixedline.js - Postman Documentation</title>
<script src="scripts/prettify/prettify.js"></script>
<script src="scripts/prettify/lang-css.js"></script>
<!--[if lt IE 9]>
<script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<link type="text/css" rel="stylesheet" href="styles/ionicons.min.css">
<link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
<link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
</head>
<body>
<input type="checkbox" id="nav-trigger" class="nav-trigger" />
<label for="nav-trigger" class="navicon-button x">
<div class="navicon"></div>
</label>
<label for="nav-trigger" class="overlay"></label>
<nav>
<h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Datacard.html">Datacard</a><ul class='methods'><li data-type='method'><a href="Datacard.html#.AllOperators">AllOperators</a></li><li data-type='method'><a href="Datacard.html#.CheckStatus">CheckStatus</a></li><li data-type='method'><a href="Datacard.html#Recharge">Recharge</a></li></ul></li><li><a href="DTH.html">DTH</a><ul class='methods'><li data-type='method'><a href="DTH.html#.AllOperators">AllOperators</a></li><li data-type='method'><a href="DTH.html#.CheckStatus">CheckStatus</a></li><li data-type='method'><a href="DTH.html#Recharge">Recharge</a></li></ul></li><li><a href="Fixedline.html">Fixedline</a><ul class='methods'><li data-type='method'><a href="Fixedline.html#.CheckStatus">CheckStatus</a></li><li data-type='method'><a href="Fixedline.html#.GetOperators">GetOperators</a></li><li data-type='method'><a href="Fixedline.html#Pay">Pay</a></li></ul></li><li><a href="MobilePlan.html">MobilePlan</a></li><li><a href="MobilePostpaid.html">MobilePostpaid</a><ul class='methods'><li data-type='method'><a href="MobilePostpaid.html#.CheckStatus">CheckStatus</a></li><li data-type='method'><a href="MobilePostpaid.html#.GetOperators">GetOperators</a></li><li data-type='method'><a href="MobilePostpaid.html#Pay">Pay</a></li></ul></li><li><a href="MobilePrepaid.html">MobilePrepaid</a><ul class='methods'><li data-type='method'><a href="MobilePrepaid.html#.AllOperators">AllOperators</a></li><li data-type='method'><a href="MobilePrepaid.html#.CheckStatus">CheckStatus</a></li><li data-type='method'><a href="MobilePrepaid.html#.FindOperator">FindOperator</a></li><li data-type='method'><a href="MobilePrepaid.html#.GetPlans">GetPlans</a></li><li data-type='method'><a href="MobilePrepaid.html#Recharge">Recharge</a></li></ul></li><li><a href="Operator.html">Operator</a><ul class='methods'><li data-type='method'><a href="Operator.html#.InitList">InitList</a></li><li data-type='method'><a href="Operator.html#.WithCode">WithCode</a></li></ul></li></ul><h3>Modules</h3><ul><li><a href="module-RechargeError.html">RechargeError</a><ul class='methods'><li data-type='method'><a href="module-RechargeError.html#~Check">Check</a></li></ul></li><li><a href="module-Telecom.html">Telecom</a><ul class='methods'><li data-type='method'><a href="module-Telecom.html#~AllCircles">AllCircles</a></li><li data-type='method'><a href="module-Telecom.html#~CircleWithCode">CircleWithCode</a></li></ul></li></ul>
</nav>
<div id="main">
<h1 class="page-title">Source/Fixedline.js</h1>
<section>
<article>
<pre class="prettyprint source linenums"><code>"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</code></pre>
</article>
</section>
</div>
<br class="clear">
<footer>
Documentation generated at Tue Mar 20 2018 03:11:49 GMT+0530 (IST)
</footer>
<script>prettyPrint();</script>
<script src="scripts/linenumber.js"></script>
</body>
</html>