• File: MassSMSER.js
  • Full Path: /var/www/nodejs/Notifications_Imali_API/src/models/MassSMSER.js
  • Date Modified: 01/30/2023 8:03 PM
  • File size: 1.15 KB
  • MIME-type: text/plain
  • Charset: utf-8

const async = require("async");
const triggerSMS = require("../services/sms.service");

class MassSMSER{
    
    constructor(listOfNumbers,smsData){
        this.smsData=smsData;
        this.success_numbers=[];
        this.failure_numbers=[];
        this.invokeOperation(listOfNumbers);
    }
   
    invokeOperation = (listOfNumbers) => {
        async.each(listOfNumbers,this.sendMassPush,(err,info)=>{
            if(err)
                console.log(this.failure_numbers,'errors');
            else
                console.log(this.success_numbers,'success');
        });
    }

    sendMassPush = (phoneNumber, callback) =>{

        this.smsData.To = phoneNumber;

        async.waterfall([
            (callback)=>{
                triggerSMS(this.smsData)
                .then(()=>{
                    this.success_numbers.push(phoneNumber);
                    callback();
                })
                .catch(()=>{
                    this.failure_numbers.push(phoneNumber);
                    callback();
                })
            }
        ],
        function (){
            callback();
        })
        
    }
}

module.exports = MassSMSER;