@magic.batua/recharge
Version:
The Recharge module manages all the mobile prepaid, datacard and DTH recharge functionalities of the Magic Batua platform.
84 lines (72 loc) • 2.75 kB
text/typescript
/**
* @module RechargeBill
* @overview Defines the model for a `RechargeBill`
*
* @author Animesh Mishra <hello@animesh.ltd>
* @copyright © Animesh Ltd. All Rights Reserved.
*/
import * as Request from "request-promise-native"
import * as Error from "@magic.batua/error"
import { ExternalError } from "@magic.batua/error"
import { Operator } from "./Source/Operator"
import { RIPCreds } from "./Source/RIPCreds"
import { DTH } from "./Source/DTH"
import { Datacard } from "./Source/Datacard"
import * as Telecom from "./Source/Mobile/TelecomCircle"
import { MobilePlan } from "./Source/Mobile/MobilePlan"
import { MobilePrepaid } from "./Source/Mobile/MobilePrepaid"
import { MobilePostpaid } from "./Source/Mobile/MobilePostpaid"
import { Fixedline } from "./Source/Fixedline"
export class RechargeBill {
/** Service category. Either of mobile, DTH or datacard. */
public service: string
/** Recharge request sent to Rocket in Pocket servers */
public instructions: any
/** Transaction status */
public status: string
/** Bill aggregator's transaction reference */
public vendorReference: string
/** Operator's transaction reference */
public operatorReference: string
/** Amount debited from Magic Batua's wallet balance. */
public amountCharged: number
/** Commission earned by Magic Batua */
public commission: number
/** Date and time of recharge request */
public date: Date
public constructor(instructions: any, response: any) {
// Set transaction category
switch(instructions.constructor) {
case Datacard:
this.service = "Datacard"
break
case DTH:
this.service = "DTH"
break
case MobilePrepaid:
this.service = "Mobile Prepaid"
break
case MobilePostpaid:
this.service = "Mobile Postpaid"
break
default:
this.service = "Fixedline and Broadband"
}
this.instructions = instructions
this.status = response.status
this.vendorReference = response.rocket_trans_id
this.operatorReference = response.opr_transid
this.amountCharged = Number(response.charged_amount)
this.commission = response.commission
this.date = new Date(response.datetime)
}
}
// Exports
export { RIPCreds }
export { MobilePrepaid }
export { MobilePlan }
export { MobilePostpaid }
export { DTH }
export { Datacard }
export { Fixedline }
export { Operator }