Controllers_SmsController.js

const CrudController = require("./CrudController");
const SMSService = require("../Services/SMSService");
const JsonResponse = require("./JsonResponse");
const logger = require("../Logger");


/**
 * @extends Myintranet.Controllers.CrudController
 * @memberOf Myintranet.Controllers
 * @inheritDoc
 */
class SmsController extends CrudController {
    constructor(db) {
        let service = new SMSService(db);
        super(service, undefined, db);
    }
    getSmsForConsultants(request,response){
        this.service.getSmsForConsultants(request).then(data => {
            response.json(new JsonResponse(true, data, ""));
        }).catch(err => {
            logger.error(err.message, err);
            response.json(new JsonResponse(false, err, err.message));
        })
    }



    webHookVonage(request, response) {
        //test lcal with ngrock
        let {db} = this;
        let data = request.body;
        console.log('################## SMS RECEVED #########################');
        console.log(data)
        //trying to find the user
        db.User.findOne({where: {phone: "+"+data.msisdn}}).then(user => {
            if (!user) {
                data.orphan = true;
            } else {
                data.orphan = false;
                data.UtilisateurId = user.id;
            }
            db.SMSHisto.create(data).then(() => {
                response.status(200).end();
            })
        })





        /*
{
  msisdn: '33619629393',
  to: '33644637511',
  messageId: '290000000C4BC094',
  text: 'Finally',
  type: 'text',
  keyword: 'FINALLY',
  'api-key': '31e8eb0c',
  'message-timestamp': '2022-10-11 08:23:56'
}

         */

    }



    sendSms(request,response){
        this.service.sendSms(request).then(data => {
            response.json(new JsonResponse(true, data, ""));
        }).catch(err => {
            logger.error(err.message, err);
            response.json(new JsonResponse(false, err, err.message));
        })
    }
}

module.exports = SmsController;