Built motion from commit 10af8726.|2.6.34
[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 _0x070c=['sinch','baseUrl','/whatsapp/v1/','/messages/','POST','Bearer\x20','application/json','statuses','message_id','WhatsappMessage,\x20%s','finally','lodash','util','../../config/logger','api','moment','bluebird','node-fetch','rimraf','../../config/environment','./whatsappMessage.attributes','exports','define','WhatsappMessage','whatsapp_messages','messageId','fti_whatsapp_messages','body','FULLTEXT','models','get','direction','toLowerCase','out','secret','isNil','WhatsappInteraction','findOne','WhatsappInteractionId','then','update','catch','error','find','WhatsappAccountId','type','twilio','accountSid','authToken','messages','create','whatsapp:','phone','remote','/status?token=','token','sid','WhatsappMessage,\x20%s,\x20%s,\x20%s','afterCreate','Missing\x20parameters:\x20phone,\x20accountSid\x20or\x20authToken'];(function(_0x337a7a,_0x5f3233){var _0x1f72db=function(_0xc1a70c){while(--_0xc1a70c){_0x337a7a['push'](_0x337a7a['shift']());}};_0x1f72db(++_0x5f3233);}(_0x070c,0xfb));var _0xc070=function(_0x1a3f66,_0x76e456){_0x1a3f66=_0x1a3f66-0x0;var _0x2b9114=_0x070c[_0x1a3f66];return _0x2b9114;};'use strict';var _=require(_0xc070('0x0'));var util=require(_0xc070('0x1'));var logger=require(_0xc070('0x2'))(_0xc070('0x3'));var moment=require(_0xc070('0x4'));var BPromise=require(_0xc070('0x5'));var rp=require('request-promise');var fetch=require(_0xc070('0x6'));var fs=require('fs');var path=require('path');var rimraf=require(_0xc070('0x7'));var config=require(_0xc070('0x8'));var attributes=require(_0xc070('0x9'));module[_0xc070('0xa')]=function(_0x9c4f6f,_0x322c0b){return _0x9c4f6f[_0xc070('0xb')](_0xc070('0xc'),attributes,{'tableName':_0xc070('0xd'),'paranoid':![],'indexes':[{'name':_0xc070('0xe'),'fields':[_0xc070('0xe')]},{'name':_0xc070('0xf'),'fields':[_0xc070('0x10')],'type':_0xc070('0x11')}],'timestamps':!![],'hooks':{'afterCreate':function(_0x1a4c89,_0x2051ac,_0x55f66e){var _0x4d95cb=_0x9c4f6f[_0xc070('0x12')];var _0x136507=_0x1a4c89[_0xc070('0x13')]({'plain':!![]});if(_0x136507[_0xc070('0x14')][_0xc070('0x15')]()==='in'||_0x136507[_0xc070('0x14')][_0xc070('0x15')]()===_0xc070('0x16')&&!_0x136507[_0xc070('0x17')]&&!_[_0xc070('0x18')](_0x136507['UserId'])){_0x4d95cb[_0xc070('0x19')][_0xc070('0x1a')]({'where':{'id':_0x136507[_0xc070('0x1b')]}})[_0xc070('0x1c')](function(_0x463918){if(_0x463918){_0x463918[_0xc070('0x1d')]({'lastMsgAt':_0x136507['createdAt'],'lastMsgDirection':_0x136507[_0xc070('0x14')][_0xc070('0x15')]()});}})[_0xc070('0x1e')](function(_0x4b7596){console[_0xc070('0x1f')](_0x4b7596);});}if(_0x136507['direction']==='out'&&!_0x136507[_0xc070('0x17')]){var _0x5ace23;_0x4d95cb['WhatsappAccount'][_0xc070('0x20')]({'where':{'id':_0x136507[_0xc070('0x21')]},'raw':!![]})[_0xc070('0x1c')](function(_0x60e744){_0x5ace23=_0x60e744;if(_0x5ace23&&_0x5ace23[_0xc070('0x22')]){switch(_0x5ace23[_0xc070('0x22')]){case _0xc070('0x23'):var _0x8e9094=require(_0xc070('0x23'));if(_0x5ace23[_0xc070('0x24')]&&_0x5ace23['authToken']&&_0x5ace23['phone']){var _0x26801f=new _0x8e9094(_0x5ace23['accountSid'],_0x5ace23[_0xc070('0x25')]);_0x26801f[_0xc070('0x26')][_0xc070('0x27')]({'body':_0x136507['body'],'to':_0xc070('0x28')+_0x136507['phone'],'from':_0xc070('0x28')+_0x5ace23[_0xc070('0x29')],'statusCallback':_0x5ace23[_0xc070('0x2a')]+'/api/whatsapp/messages/'+_0x136507['id']+_0xc070('0x2b')+_0x5ace23[_0xc070('0x2c')]})[_0xc070('0x1c')](function(_0xa49d4f){if(_0xa49d4f[_0xc070('0x2d')]){return _0x1a4c89[_0xc070('0x1d')]({'messageId':_0xa49d4f[_0xc070('0x2d')]});}})['catch'](function(_0x54a678){logger[_0xc070('0x1f')](_0xc070('0x2e'),_0xc070('0x2f'),_0xc070('0x23'),util['inspect'](_0x54a678,{'showHidden':![],'depth':null}));});}else{logger['error'](_0xc070('0x2e'),_0xc070('0x2f'),_0xc070('0x23'),_0xc070('0x30'));}break;case _0xc070('0x31'):var _0x1891b2=_0x5ace23[_0xc070('0x24')];var _0x4ad3cb=_0x5ace23['authToken'];var _0x1bc4b4=_0x5ace23[_0xc070('0x32')]+_0xc070('0x33')+_0x1891b2+_0xc070('0x34');var _0x388d67={'to':[_0x136507[_0xc070('0x29')]],'message':{'type':'text','text':_0x136507['body']}};var _0x187ce4={'method':_0xc070('0x35'),'uri':_0x1bc4b4,'headers':{'Authorization':_0xc070('0x36')+_0x4ad3cb,'Content-Type':_0xc070('0x37')},'body':_0x388d67,'json':!![]};rp(_0x187ce4)['then'](function(_0x27fc70){if(_0x27fc70[_0xc070('0x38')][0x0][_0xc070('0x39')]){return _0x1a4c89[_0xc070('0x1d')]({'messageId':_0x27fc70[_0xc070('0x38')][0x0][_0xc070('0x39')]});}})[_0xc070('0x1e')](function(_0xc4bdc7){logger['err'](_0xc070('0x3a'),_0xc4bdc7);});break;}}})[_0xc070('0x3b')](function(){_0x55f66e();});}else{_0x55f66e();}}},'charset':'utf8mb4','collate':'utf8mb4_unicode_ci'});};