Built motion from commit 42801a18.|2.6.28
[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 _0x9714=['define','WhatsappMessage','messageId','models','get','toLowerCase','direction','out','secret','isNil','WhatsappInteraction','findOne','update','createdAt','error','WhatsappAccountId','then','type','accountSid','authToken','phone','messages','create','whatsapp:','remote','/api/whatsapp/messages/','/status?token=','token','sid','catch','WhatsappMessage,\x20%s,\x20%s,\x20%s','twilio','inspect','afterCreate','Missing\x20parameters:\x20phone,\x20accountSid\x20or\x20authToken','sinch','baseUrl','/whatsapp/v1/','/messages/','text','body','POST','Bearer\x20','application/json','message_id','statuses','err','WhatsappMessage,\x20%s','finally','utf8mb4','utf8mb4_unicode_ci','lodash','util','moment','bluebird','node-fetch','rimraf','./whatsappMessage.attributes'];(function(_0x20a584,_0xe384a5){var _0x4b41a8=function(_0x2127c6){while(--_0x2127c6){_0x20a584['push'](_0x20a584['shift']());}};_0x4b41a8(++_0xe384a5);}(_0x9714,0x11b));var _0x4971=function(_0x5d8018,_0x588592){_0x5d8018=_0x5d8018-0x0;var _0x151ac4=_0x9714[_0x5d8018];return _0x151ac4;};'use strict';var _=require(_0x4971('0x0'));var util=require(_0x4971('0x1'));var logger=require('../../config/logger')('api');var moment=require(_0x4971('0x2'));var BPromise=require(_0x4971('0x3'));var rp=require('request-promise');var fetch=require(_0x4971('0x4'));var fs=require('fs');var path=require('path');var rimraf=require(_0x4971('0x5'));var config=require('../../config/environment');var attributes=require(_0x4971('0x6'));module['exports']=function(_0x4228b4,_0x2f58b2){return _0x4228b4[_0x4971('0x7')](_0x4971('0x8'),attributes,{'tableName':'whatsapp_messages','paranoid':![],'indexes':[{'name':_0x4971('0x9'),'fields':[_0x4971('0x9')]},{'name':'fti_whatsapp_messages','fields':['body'],'type':'FULLTEXT'}],'timestamps':!![],'hooks':{'afterCreate':function(_0x54d0c5,_0x565c8a,_0x5dc0c4){var _0x582a54=_0x4228b4[_0x4971('0xa')];var _0x51e362=_0x54d0c5[_0x4971('0xb')]({'plain':!![]});if(_0x51e362['direction'][_0x4971('0xc')]()==='in'||_0x51e362[_0x4971('0xd')]['toLowerCase']()===_0x4971('0xe')&&!_0x51e362[_0x4971('0xf')]&&!_[_0x4971('0x10')](_0x51e362['UserId'])){_0x582a54[_0x4971('0x11')][_0x4971('0x12')]({'where':{'id':_0x51e362['WhatsappInteractionId']}})['then'](function(_0x4ebee0){if(_0x4ebee0){_0x4ebee0[_0x4971('0x13')]({'lastMsgAt':_0x51e362[_0x4971('0x14')],'lastMsgDirection':_0x51e362[_0x4971('0xd')][_0x4971('0xc')]()});}})['catch'](function(_0x510ea3){console[_0x4971('0x15')](_0x510ea3);});}if(_0x51e362[_0x4971('0xd')]===_0x4971('0xe')&&!_0x51e362[_0x4971('0xf')]){var _0x2c12b3;_0x582a54['WhatsappAccount']['find']({'where':{'id':_0x51e362[_0x4971('0x16')]},'raw':!![]})[_0x4971('0x17')](function(_0x50db7a){_0x2c12b3=_0x50db7a;if(_0x2c12b3&&_0x2c12b3['type']){switch(_0x2c12b3[_0x4971('0x18')]){case'twilio':var _0x1cdc64=require('twilio');if(_0x2c12b3[_0x4971('0x19')]&&_0x2c12b3[_0x4971('0x1a')]&&_0x2c12b3[_0x4971('0x1b')]){var _0x5353bf=new _0x1cdc64(_0x2c12b3['accountSid'],_0x2c12b3[_0x4971('0x1a')]);_0x5353bf[_0x4971('0x1c')][_0x4971('0x1d')]({'body':_0x51e362['body'],'to':_0x4971('0x1e')+_0x51e362[_0x4971('0x1b')],'from':'whatsapp:'+_0x2c12b3[_0x4971('0x1b')],'statusCallback':_0x2c12b3[_0x4971('0x1f')]+_0x4971('0x20')+_0x51e362['id']+_0x4971('0x21')+_0x2c12b3[_0x4971('0x22')]})['then'](function(_0x4dff6a){if(_0x4dff6a['sid']){return _0x54d0c5['update']({'messageId':_0x4dff6a[_0x4971('0x23')]});}})[_0x4971('0x24')](function(_0x44ea71){logger[_0x4971('0x15')](_0x4971('0x25'),'afterCreate',_0x4971('0x26'),util[_0x4971('0x27')](_0x44ea71,{'showHidden':![],'depth':null}));});}else{logger[_0x4971('0x15')](_0x4971('0x25'),_0x4971('0x28'),_0x4971('0x26'),_0x4971('0x29'));}break;case _0x4971('0x2a'):var _0x5e3976=_0x2c12b3[_0x4971('0x19')];var _0x1046e9=_0x2c12b3[_0x4971('0x1a')];var _0x1a0d15=_0x2c12b3[_0x4971('0x2b')]+_0x4971('0x2c')+_0x5e3976+_0x4971('0x2d');var _0x2d9226={'to':[_0x51e362[_0x4971('0x1b')]],'message':{'type':_0x4971('0x2e'),'text':_0x51e362[_0x4971('0x2f')]}};var _0x15d07c={'method':_0x4971('0x30'),'uri':_0x1a0d15,'headers':{'Authorization':_0x4971('0x31')+_0x1046e9,'Content-Type':_0x4971('0x32')},'body':_0x2d9226,'json':!![]};rp(_0x15d07c)['then'](function(_0x65cc0c){if(_0x65cc0c['statuses'][0x0][_0x4971('0x33')]){return _0x54d0c5[_0x4971('0x13')]({'messageId':_0x65cc0c[_0x4971('0x34')][0x0]['message_id']});}})[_0x4971('0x24')](function(_0x4751a0){logger[_0x4971('0x35')](_0x4971('0x36'),_0x4751a0);});break;}}})[_0x4971('0x37')](function(){_0x5dc0c4();});}else{_0x5dc0c4();}}},'charset':_0x4971('0x38'),'collate':_0x4971('0x39')});};