0bddb0c326ef583f7fdd0bb883d5e6a3a63d12b4
[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 _0xb592=['authToken','create','body','whatsapp:','phone','remote','token','sid','update','catch','WhatsappMessage,\x20%s,\x20%s,\x20%s','afterCreate','Missing\x20parameters:\x20phone,\x20accountSid\x20or\x20authToken','sinch','baseUrl','/whatsapp/v1/','/messages/','text','Bearer\x20','application/json','statuses','message_id','err','WhatsappMessage,\x20%s','finally','utf8mb4','utf8mb4_unicode_ci','lodash','api','bluebird','node-fetch','path','rimraf','../../config/environment','./whatsappMessage.attributes','exports','define','whatsapp_messages','messageId','fti_whatsapp_messages','FULLTEXT','models','get','toLowerCase','out','secret','UserId','WhatsappInteraction','findOne','WhatsappInteractionId','then','createdAt','direction','error','WhatsappAccount','find','WhatsappAccountId','type','twilio','accountSid'];(function(_0x775180,_0x3e181e){var _0x400622=function(_0x5ba3bf){while(--_0x5ba3bf){_0x775180['push'](_0x775180['shift']());}};_0x400622(++_0x3e181e);}(_0xb592,0x10b));var _0x2b59=function(_0x13afff,_0x58e8da){_0x13afff=_0x13afff-0x0;var _0x16b3ac=_0xb592[_0x13afff];return _0x16b3ac;};'use strict';var _=require(_0x2b59('0x0'));var util=require('util');var logger=require('../../config/logger')(_0x2b59('0x1'));var moment=require('moment');var BPromise=require(_0x2b59('0x2'));var rp=require('request-promise');var fetch=require(_0x2b59('0x3'));var fs=require('fs');var path=require(_0x2b59('0x4'));var rimraf=require(_0x2b59('0x5'));var config=require(_0x2b59('0x6'));var attributes=require(_0x2b59('0x7'));module[_0x2b59('0x8')]=function(_0x49f899,_0x5551a1){return _0x49f899[_0x2b59('0x9')]('WhatsappMessage',attributes,{'tableName':_0x2b59('0xa'),'paranoid':![],'indexes':[{'name':_0x2b59('0xb'),'fields':[_0x2b59('0xb')]},{'name':_0x2b59('0xc'),'fields':['body'],'type':_0x2b59('0xd')}],'timestamps':!![],'hooks':{'afterCreate':function(_0x252f6b,_0x48e7b1,_0x8a1eb5){var _0x1ec12e=_0x49f899[_0x2b59('0xe')];var _0x2aa5da=_0x252f6b[_0x2b59('0xf')]({'plain':!![]});if(_0x2aa5da['direction'][_0x2b59('0x10')]()==='in'||_0x2aa5da['direction'][_0x2b59('0x10')]()===_0x2b59('0x11')&&!_0x2aa5da[_0x2b59('0x12')]&&!_['isNil'](_0x2aa5da[_0x2b59('0x13')])){_0x1ec12e[_0x2b59('0x14')][_0x2b59('0x15')]({'where':{'id':_0x2aa5da[_0x2b59('0x16')]}})[_0x2b59('0x17')](function(_0xaac253){if(_0xaac253){_0xaac253['update']({'lastMsgAt':_0x2aa5da[_0x2b59('0x18')],'lastMsgDirection':_0x2aa5da[_0x2b59('0x19')][_0x2b59('0x10')]()});}})['catch'](function(_0x39a9c6){console[_0x2b59('0x1a')](_0x39a9c6);});}if(_0x2aa5da[_0x2b59('0x19')]===_0x2b59('0x11')&&!_0x2aa5da[_0x2b59('0x12')]){var _0x485fbf;_0x1ec12e[_0x2b59('0x1b')][_0x2b59('0x1c')]({'where':{'id':_0x2aa5da[_0x2b59('0x1d')]},'raw':!![]})[_0x2b59('0x17')](function(_0x45218c){_0x485fbf=_0x45218c;if(_0x485fbf&&_0x485fbf[_0x2b59('0x1e')]){switch(_0x485fbf[_0x2b59('0x1e')]){case _0x2b59('0x1f'):var _0x1ec3c9=require(_0x2b59('0x1f'));if(_0x485fbf[_0x2b59('0x20')]&&_0x485fbf[_0x2b59('0x21')]&&_0x485fbf['phone']){var _0x1ff3fd=new _0x1ec3c9(_0x485fbf[_0x2b59('0x20')],_0x485fbf[_0x2b59('0x21')]);_0x1ff3fd['messages'][_0x2b59('0x22')]({'body':_0x2aa5da[_0x2b59('0x23')],'to':_0x2b59('0x24')+_0x2aa5da[_0x2b59('0x25')],'from':'whatsapp:'+_0x485fbf[_0x2b59('0x25')],'statusCallback':_0x485fbf[_0x2b59('0x26')]+'/api/whatsapp/messages/'+_0x2aa5da['id']+'/status?token='+_0x485fbf[_0x2b59('0x27')]})['then'](function(_0x145969){if(_0x145969[_0x2b59('0x28')]){return _0x252f6b[_0x2b59('0x29')]({'messageId':_0x145969['sid']});}})[_0x2b59('0x2a')](function(_0x231d15){logger[_0x2b59('0x1a')](_0x2b59('0x2b'),_0x2b59('0x2c'),_0x2b59('0x1f'),util['inspect'](_0x231d15,{'showHidden':![],'depth':null}));});}else{logger['error'](_0x2b59('0x2b'),_0x2b59('0x2c'),'twilio',_0x2b59('0x2d'));}break;case _0x2b59('0x2e'):var _0x3d4982=_0x485fbf[_0x2b59('0x20')];var _0x399294=_0x485fbf[_0x2b59('0x21')];var _0x2a3c77=_0x485fbf[_0x2b59('0x2f')]+_0x2b59('0x30')+_0x3d4982+_0x2b59('0x31');var _0x9d35f={'to':[_0x2aa5da[_0x2b59('0x25')]],'message':{'type':_0x2b59('0x32'),'text':_0x2aa5da['body']}};var _0x41f071={'method':'POST','uri':_0x2a3c77,'headers':{'Authorization':_0x2b59('0x33')+_0x399294,'Content-Type':_0x2b59('0x34')},'body':_0x9d35f,'json':!![]};rp(_0x41f071)[_0x2b59('0x17')](function(_0x3f05c4){if(_0x3f05c4[_0x2b59('0x35')][0x0][_0x2b59('0x36')]){return _0x252f6b['update']({'messageId':_0x3f05c4['statuses'][0x0]['message_id']});}})['catch'](function(_0x3d66ed){logger[_0x2b59('0x37')](_0x2b59('0x38'),_0x3d66ed);});break;}}})[_0x2b59('0x39')](function(){_0x8a1eb5();});}else{_0x8a1eb5();}}},'charset':_0x2b59('0x3a'),'collate':_0x2b59('0x3b')});};