UNPKG

@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
/** * @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 }