2825d5a2a1261344f915ff15eed6a6cfd6eccc59
[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 _0xb254=['sid','error','WhatsappMessage,\x20%s,\x20%s,\x20%s','afterCreate','Missing\x20parameters:\x20phone,\x20accountSid\x20or\x20authToken','sinch','/whatsapp/v1/','text','Bearer\x20','statuses','message_id','catch','err','WhatsappMessage,\x20%s','finally','utf8mb4','utf8mb4_unicode_ci','util','../../config/logger','api','moment','request-promise','node-fetch','path','rimraf','./whatsappMessage.attributes','exports','define','whatsapp_messages','messageId','body','FULLTEXT','get','direction','toLowerCase','out','secret','UserId','WhatsappInteractionId','update','createdAt','WhatsappAccount','find','WhatsappAccountId','then','twilio','accountSid','authToken','phone','messages','create','whatsapp:','/status?token='];(function(_0x3d0d9c,_0x4cba8e){var _0x2bc8cf=function(_0x275d0b){while(--_0x275d0b){_0x3d0d9c['push'](_0x3d0d9c['shift']());}};_0x2bc8cf(++_0x4cba8e);}(_0xb254,0x1b9));var _0x4b25=function(_0x178342,_0x3e6cd2){_0x178342=_0x178342-0x0;var _0x5667c9=_0xb254[_0x178342];return _0x5667c9;};'use strict';var _=require('lodash');var util=require(_0x4b25('0x0'));var logger=require(_0x4b25('0x1'))(_0x4b25('0x2'));var moment=require(_0x4b25('0x3'));var BPromise=require('bluebird');var rp=require(_0x4b25('0x4'));var fetch=require(_0x4b25('0x5'));var fs=require('fs');var path=require(_0x4b25('0x6'));var rimraf=require(_0x4b25('0x7'));var config=require('../../config/environment');var attributes=require(_0x4b25('0x8'));module[_0x4b25('0x9')]=function(_0x387002,_0x1940d4){return _0x387002[_0x4b25('0xa')]('WhatsappMessage',attributes,{'tableName':_0x4b25('0xb'),'paranoid':![],'indexes':[{'name':_0x4b25('0xc'),'fields':[_0x4b25('0xc')]},{'name':'fti_whatsapp_messages','fields':[_0x4b25('0xd')],'type':_0x4b25('0xe')}],'timestamps':!![],'hooks':{'afterCreate':function(_0xde30a6,_0x245669,_0x4ace7f){var _0x209fb0=_0x387002['models'];var _0x1f9049=_0xde30a6[_0x4b25('0xf')]({'plain':!![]});if(_0x1f9049[_0x4b25('0x10')][_0x4b25('0x11')]()==='in'||_0x1f9049['direction'][_0x4b25('0x11')]()===_0x4b25('0x12')&&!_0x1f9049[_0x4b25('0x13')]&&!_['isNil'](_0x1f9049[_0x4b25('0x14')])){_0x209fb0['WhatsappInteraction']['findOne']({'where':{'id':_0x1f9049[_0x4b25('0x15')]}})['then'](function(_0x567544){if(_0x567544){_0x567544[_0x4b25('0x16')]({'lastMsgAt':_0x1f9049[_0x4b25('0x17')],'lastMsgDirection':_0x1f9049[_0x4b25('0x10')][_0x4b25('0x11')]()});}})['catch'](function(_0x3aef0b){console['error'](_0x3aef0b);});}if(_0x1f9049[_0x4b25('0x10')]===_0x4b25('0x12')&&!_0x1f9049['secret']){var _0x59ca30;_0x209fb0[_0x4b25('0x18')][_0x4b25('0x19')]({'where':{'id':_0x1f9049[_0x4b25('0x1a')]},'raw':!![]})[_0x4b25('0x1b')](function(_0x2f77d9){_0x59ca30=_0x2f77d9;if(_0x59ca30&&_0x59ca30['type']){switch(_0x59ca30['type']){case _0x4b25('0x1c'):var _0x53ae1c=require(_0x4b25('0x1c'));if(_0x59ca30[_0x4b25('0x1d')]&&_0x59ca30[_0x4b25('0x1e')]&&_0x59ca30[_0x4b25('0x1f')]){var _0x5b62be=new _0x53ae1c(_0x59ca30[_0x4b25('0x1d')],_0x59ca30[_0x4b25('0x1e')]);_0x5b62be[_0x4b25('0x20')][_0x4b25('0x21')]({'body':_0x1f9049[_0x4b25('0xd')],'to':_0x4b25('0x22')+_0x1f9049[_0x4b25('0x1f')],'from':_0x4b25('0x22')+_0x59ca30[_0x4b25('0x1f')],'statusCallback':_0x59ca30['remote']+'/api/whatsapp/messages/'+_0x1f9049['id']+_0x4b25('0x23')+_0x59ca30['token']})[_0x4b25('0x1b')](function(_0x5455e6){if(_0x5455e6[_0x4b25('0x24')]){return _0xde30a6[_0x4b25('0x16')]({'messageId':_0x5455e6['sid']});}})['catch'](function(_0x20d03d){logger[_0x4b25('0x25')](_0x4b25('0x26'),_0x4b25('0x27'),_0x4b25('0x1c'),util['inspect'](_0x20d03d,{'showHidden':![],'depth':null}));});}else{logger[_0x4b25('0x25')]('WhatsappMessage,\x20%s,\x20%s,\x20%s',_0x4b25('0x27'),_0x4b25('0x1c'),_0x4b25('0x28'));}break;case _0x4b25('0x29'):var _0x205745=_0x59ca30[_0x4b25('0x1d')];var _0x10cfcb=_0x59ca30[_0x4b25('0x1e')];var _0x3827f5=_0x59ca30['baseUrl']+_0x4b25('0x2a')+_0x205745+'/messages/';var _0x5f57f7={'to':[_0x1f9049[_0x4b25('0x1f')]],'message':{'type':_0x4b25('0x2b'),'text':_0x1f9049[_0x4b25('0xd')]}};var _0x14fd8e={'method':'POST','uri':_0x3827f5,'headers':{'Authorization':_0x4b25('0x2c')+_0x10cfcb,'Content-Type':'application/json'},'body':_0x5f57f7,'json':!![]};rp(_0x14fd8e)['then'](function(_0x5c5797){if(_0x5c5797[_0x4b25('0x2d')][0x0][_0x4b25('0x2e')]){return _0xde30a6[_0x4b25('0x16')]({'messageId':_0x5c5797[_0x4b25('0x2d')][0x0][_0x4b25('0x2e')]});}})[_0x4b25('0x2f')](function(_0x4bc3e8){logger[_0x4b25('0x30')](_0x4b25('0x31'),_0x4bc3e8);});break;}}})[_0x4b25('0x32')](function(){_0x4ace7f();});}else{_0x4ace7f();}}},'charset':_0x4b25('0x33'),'collate':_0x4b25('0x34')});};