• File: SMS.js
  • Full Path: /var/www/nodejs/Notifications_Imali_API/src/models/SMS.js
  • Date Modified: 01/30/2023 8:03 PM
  • File size: 1.85 KB
  • MIME-type: text/x-c++
  • Charset: utf-8
const Joi = require("joi");
const env = process.env;

class SMS {

    constructor(message) {
        this.From = 'i.Mali';
        this.RegisteredDelivery = true;
        this.Content = message;
        this.ClientReference = this.transactionID(),
        this.Time = this.getFormattedDate();
    }

    static validate(body){
        return Joi.object({
            phoneNumbers:Joi.array().required().max(15),
            message:Joi.string().required().min(3),            
        }).validate(body);
    }

    getFormattedDate() {
    
        const date=new Date();
    
        let hour=date.getHours();
        let minutes=date.getMinutes();
        let seconds=date.getSeconds();
    
        let day = date.getDate();
        let month = date.getMonth() + 1;
        const year = date.getFullYear();
    
        //acrescenta 0 se o dia e o mês forem menor que 0
        if(day<10) day='0'+day;
        if(month<10) month='0'+month;
        if(seconds<10) seconds='0'+seconds;
        if(minutes<10) minutes='0'+minutes;
        if(hour<10) hour='0'+hour;
    
        const databaseTime = `${year}-${month}-${day} ${hour}:${minutes}:${seconds}`;
    
        return databaseTime;
    }
    
    transactionID()
    {
        const characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
        const charactersLength = characters.length;
        let randomString = '';
    
        for (let i = 0; i < 12; i++) {
            randomString += characters.charAt(Math.floor(Math.random() * charactersLength));
        }
    
        return randomString;
    }
}
   
class SMSConf{
    constructor(){
        this.responseType='json';
        this.headers = {
            'Authorization': `Basic ${env.SMS_AUTHORIZATION_TOKEN}`,
            'Content-Type': 'application/json',
            'Accept':'application/json'
        }
    }
}


module.exports={SMS,SMSConf};