207e1c0cbfedc11ebdc404ea1ba08c9b8a840b1f
[motion2.git] / server / api / whatsappMessage / whatsappMessage.model.js
1 // *************************************************************************
2 // *                                                                       *
3 // * xCALLY Motion -  The Omnichannel Contact Center                       *
4 // * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
5 // *                                                                       *
6 // *************************************************************************
7 // *                                                                       *
8 // * Email: info@xcally.com                                                *
9 // * Website: https://www.xcally.com                                       *
10 // *                                                                       *
11 // *************************************************************************
12 // *                                                                       *
13 // * The SOFTWARE PRODUCT is protected by copyright laws and international *
14 // * copyright treaties, as well as other intellectual property laws and   *
15 // * treaties. The SOFTWARE PRODUCT is licensed, not sold.                         *
16 // *                                                                       *
17 // *************************************************************************
18 var _0x77bf=['direction','out','secret','UserId','WhatsappInteraction','findOne','WhatsappInteractionId','then','update','createdAt','catch','error','WhatsappAccount','find','WhatsappAccountId','type','twilio','accountSid','phone','authToken','messages','create','body','whatsapp:','remote','token','sid','WhatsappMessage,\x20%s,\x20%s,\x20%s','afterCreate','Missing\x20parameters:\x20phone,\x20accountSid\x20or\x20authToken','baseUrl','/whatsapp/v1/','text','POST','application/json','statuses','message_id','err','finally','utf8mb4','lodash','api','moment','bluebird','request-promise','rimraf','./whatsappMessage.attributes','exports','define','whatsapp_messages','FULLTEXT','get','toLowerCase'];(function(_0x4a5452,_0xa31da4){var _0x209900=function(_0x15b396){while(--_0x15b396){_0x4a5452['push'](_0x4a5452['shift']());}};_0x209900(++_0xa31da4);}(_0x77bf,0x166));var _0xf77b=function(_0x3a97e5,_0x466a95){_0x3a97e5=_0x3a97e5-0x0;var _0x13f3f4=_0x77bf[_0x3a97e5];return _0x13f3f4;};'use strict';var _=require(_0xf77b('0x0'));var util=require('util');var logger=require('../../config/logger')(_0xf77b('0x1'));var moment=require(_0xf77b('0x2'));var BPromise=require(_0xf77b('0x3'));var rp=require(_0xf77b('0x4'));var fetch=require('node-fetch');var fs=require('fs');var path=require('path');var rimraf=require(_0xf77b('0x5'));var config=require('../../config/environment');var attributes=require(_0xf77b('0x6'));module[_0xf77b('0x7')]=function(_0x10e5b7,_0x4da016){return _0x10e5b7[_0xf77b('0x8')]('WhatsappMessage',attributes,{'tableName':_0xf77b('0x9'),'paranoid':![],'indexes':[{'name':'messageId','fields':['messageId']},{'name':'fti_whatsapp_messages','fields':['body'],'type':_0xf77b('0xa')}],'timestamps':!![],'hooks':{'afterCreate':function(_0x19ec51,_0x3af70b,_0x48c2a9){var _0x2d4910=_0x10e5b7['models'];var _0x460383=_0x19ec51[_0xf77b('0xb')]({'plain':!![]});if(_0x460383['direction'][_0xf77b('0xc')]()==='in'||_0x460383[_0xf77b('0xd')][_0xf77b('0xc')]()===_0xf77b('0xe')&&!_0x460383[_0xf77b('0xf')]&&!_['isNil'](_0x460383[_0xf77b('0x10')])){_0x2d4910[_0xf77b('0x11')][_0xf77b('0x12')]({'where':{'id':_0x460383[_0xf77b('0x13')]}})[_0xf77b('0x14')](function(_0x2a551c){if(_0x2a551c){_0x2a551c[_0xf77b('0x15')]({'lastMsgAt':_0x460383[_0xf77b('0x16')],'lastMsgDirection':_0x460383['direction']['toLowerCase']()});}})[_0xf77b('0x17')](function(_0x318854){console[_0xf77b('0x18')](_0x318854);});}if(_0x460383['direction']===_0xf77b('0xe')&&!_0x460383['secret']){var _0xa1e350;_0x2d4910[_0xf77b('0x19')][_0xf77b('0x1a')]({'where':{'id':_0x460383[_0xf77b('0x1b')]},'raw':!![]})['then'](function(_0x22197b){_0xa1e350=_0x22197b;if(_0xa1e350&&_0xa1e350[_0xf77b('0x1c')]){switch(_0xa1e350[_0xf77b('0x1c')]){case _0xf77b('0x1d'):var _0xaab3ef=require('twilio');if(_0xa1e350[_0xf77b('0x1e')]&&_0xa1e350['authToken']&&_0xa1e350[_0xf77b('0x1f')]){var _0x2d977b=new _0xaab3ef(_0xa1e350['accountSid'],_0xa1e350[_0xf77b('0x20')]);_0x2d977b[_0xf77b('0x21')][_0xf77b('0x22')]({'body':_0x460383[_0xf77b('0x23')],'to':_0xf77b('0x24')+_0x460383['phone'],'from':_0xf77b('0x24')+_0xa1e350[_0xf77b('0x1f')],'statusCallback':_0xa1e350[_0xf77b('0x25')]+'/api/whatsapp/messages/'+_0x460383['id']+'/status?token='+_0xa1e350[_0xf77b('0x26')]})[_0xf77b('0x14')](function(_0x2b1bf3){if(_0x2b1bf3[_0xf77b('0x27')]){return _0x19ec51[_0xf77b('0x15')]({'messageId':_0x2b1bf3[_0xf77b('0x27')]});}})[_0xf77b('0x17')](function(_0x388da1){logger[_0xf77b('0x18')](_0xf77b('0x28'),_0xf77b('0x29'),_0xf77b('0x1d'),util['inspect'](_0x388da1,{'showHidden':![],'depth':null}));});}else{logger['error'](_0xf77b('0x28'),_0xf77b('0x29'),_0xf77b('0x1d'),_0xf77b('0x2a'));}break;case'sinch':var _0x4fcca6=_0xa1e350[_0xf77b('0x1e')];var _0x241536=_0xa1e350['authToken'];var _0x5c62ef=_0xa1e350[_0xf77b('0x2b')]+_0xf77b('0x2c')+_0x4fcca6+'/messages/';var _0x388df9={'to':[_0x460383['phone']],'message':{'type':_0xf77b('0x2d'),'text':_0x460383['body']}};var _0x579c1c={'method':_0xf77b('0x2e'),'uri':_0x5c62ef,'headers':{'Authorization':'Bearer\x20'+_0x241536,'Content-Type':_0xf77b('0x2f')},'body':_0x388df9,'json':!![]};rp(_0x579c1c)[_0xf77b('0x14')](function(_0x2e6b79){if(_0x2e6b79[_0xf77b('0x30')][0x0][_0xf77b('0x31')]){return _0x19ec51['update']({'messageId':_0x2e6b79[_0xf77b('0x30')][0x0][_0xf77b('0x31')]});}})[_0xf77b('0x17')](function(_0x5313bb){logger[_0xf77b('0x32')]('WhatsappMessage,\x20%s',_0x5313bb);});break;}}})[_0xf77b('0x33')](function(){_0x48c2a9();});}else{_0x48c2a9();}}},'charset':_0xf77b('0x34'),'collate':'utf8mb4_unicode_ci'});};