15d1d1f9d487307aaca4faf47533a12cca086db2
[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 _0xc1e2=['direction','toLowerCase','secret','isNil','WhatsappInteraction','findOne','WhatsappInteractionId','update','createdAt','catch','error','find','WhatsappAccountId','then','type','twilio','accountSid','authToken','whatsapp:','phone','remote','/api/whatsapp/messages/','/status?token=','token','sid','WhatsappMessage,\x20%s,\x20%s,\x20%s','afterCreate','inspect','Missing\x20parameters:\x20phone,\x20accountSid\x20or\x20authToken','baseUrl','/whatsapp/v1/','/messages/','text','POST','Bearer\x20','application/json','message_id','err','finally','lodash','util','../../config/logger','api','moment','request-promise','node-fetch','rimraf','../../config/environment','./whatsappMessage.attributes','exports','messageId','fti_whatsapp_messages','body','models','get'];(function(_0x5915d6,_0x1245d3){var _0x20022a=function(_0x13966c){while(--_0x13966c){_0x5915d6['push'](_0x5915d6['shift']());}};_0x20022a(++_0x1245d3);}(_0xc1e2,0x95));var _0x2c1e=function(_0x4603e4,_0x5b2859){_0x4603e4=_0x4603e4-0x0;var _0x2d571b=_0xc1e2[_0x4603e4];return _0x2d571b;};'use strict';var _=require(_0x2c1e('0x0'));var util=require(_0x2c1e('0x1'));var logger=require(_0x2c1e('0x2'))(_0x2c1e('0x3'));var moment=require(_0x2c1e('0x4'));var BPromise=require('bluebird');var rp=require(_0x2c1e('0x5'));var fetch=require(_0x2c1e('0x6'));var fs=require('fs');var path=require('path');var rimraf=require(_0x2c1e('0x7'));var config=require(_0x2c1e('0x8'));var attributes=require(_0x2c1e('0x9'));module[_0x2c1e('0xa')]=function(_0x3a4172,_0x8d64db){return _0x3a4172['define']('WhatsappMessage',attributes,{'tableName':'whatsapp_messages','paranoid':![],'indexes':[{'name':_0x2c1e('0xb'),'fields':[_0x2c1e('0xb')]},{'name':_0x2c1e('0xc'),'fields':[_0x2c1e('0xd')],'type':'FULLTEXT'}],'timestamps':!![],'hooks':{'afterCreate':function(_0x57985c,_0x4b96b7,_0x3021d0){var _0x2b573f=_0x3a4172[_0x2c1e('0xe')];var _0x8d8f63=_0x57985c[_0x2c1e('0xf')]({'plain':!![]});if(_0x8d8f63[_0x2c1e('0x10')][_0x2c1e('0x11')]()==='in'||_0x8d8f63['direction'][_0x2c1e('0x11')]()==='out'&&!_0x8d8f63[_0x2c1e('0x12')]&&!_[_0x2c1e('0x13')](_0x8d8f63['UserId'])){_0x2b573f[_0x2c1e('0x14')][_0x2c1e('0x15')]({'where':{'id':_0x8d8f63[_0x2c1e('0x16')]}})['then'](function(_0x165260){if(_0x165260){_0x165260[_0x2c1e('0x17')]({'lastMsgAt':_0x8d8f63[_0x2c1e('0x18')],'lastMsgDirection':_0x8d8f63[_0x2c1e('0x10')][_0x2c1e('0x11')]()});}})[_0x2c1e('0x19')](function(_0x31cb90){console[_0x2c1e('0x1a')](_0x31cb90);});}if(_0x8d8f63[_0x2c1e('0x10')]==='out'&&!_0x8d8f63['secret']){var _0x4732c9;_0x2b573f['WhatsappAccount'][_0x2c1e('0x1b')]({'where':{'id':_0x8d8f63[_0x2c1e('0x1c')]},'raw':!![]})[_0x2c1e('0x1d')](function(_0x38be48){_0x4732c9=_0x38be48;if(_0x4732c9&&_0x4732c9[_0x2c1e('0x1e')]){switch(_0x4732c9[_0x2c1e('0x1e')]){case _0x2c1e('0x1f'):var _0x3fccdd=require(_0x2c1e('0x1f'));if(_0x4732c9[_0x2c1e('0x20')]&&_0x4732c9[_0x2c1e('0x21')]&&_0x4732c9['phone']){var _0x381630=new _0x3fccdd(_0x4732c9[_0x2c1e('0x20')],_0x4732c9[_0x2c1e('0x21')]);_0x381630['messages']['create']({'body':_0x8d8f63['body'],'to':_0x2c1e('0x22')+_0x8d8f63[_0x2c1e('0x23')],'from':_0x2c1e('0x22')+_0x4732c9['phone'],'statusCallback':_0x4732c9[_0x2c1e('0x24')]+_0x2c1e('0x25')+_0x8d8f63['id']+_0x2c1e('0x26')+_0x4732c9[_0x2c1e('0x27')]})['then'](function(_0x2ccdda){if(_0x2ccdda['sid']){return _0x57985c[_0x2c1e('0x17')]({'messageId':_0x2ccdda[_0x2c1e('0x28')]});}})[_0x2c1e('0x19')](function(_0x3c10af){logger[_0x2c1e('0x1a')](_0x2c1e('0x29'),_0x2c1e('0x2a'),_0x2c1e('0x1f'),util[_0x2c1e('0x2b')](_0x3c10af,{'showHidden':![],'depth':null}));});}else{logger[_0x2c1e('0x1a')](_0x2c1e('0x29'),_0x2c1e('0x2a'),_0x2c1e('0x1f'),_0x2c1e('0x2c'));}break;case'sinch':var _0x256815=_0x4732c9['accountSid'];var _0x97ab91=_0x4732c9['authToken'];var _0x2f4f2a=_0x4732c9[_0x2c1e('0x2d')]+_0x2c1e('0x2e')+_0x256815+_0x2c1e('0x2f');var _0x4e3163={'to':[_0x8d8f63[_0x2c1e('0x23')]],'message':{'type':_0x2c1e('0x30'),'text':_0x8d8f63[_0x2c1e('0xd')]}};var _0x402f7e={'method':_0x2c1e('0x31'),'uri':_0x2f4f2a,'headers':{'Authorization':_0x2c1e('0x32')+_0x97ab91,'Content-Type':_0x2c1e('0x33')},'body':_0x4e3163,'json':!![]};rp(_0x402f7e)[_0x2c1e('0x1d')](function(_0x436dca){if(_0x436dca['statuses'][0x0]['message_id']){return _0x57985c[_0x2c1e('0x17')]({'messageId':_0x436dca['statuses'][0x0][_0x2c1e('0x34')]});}})[_0x2c1e('0x19')](function(_0x2f333b){logger[_0x2c1e('0x35')]('WhatsappMessage,\x20%s',_0x2f333b);});break;}}})[_0x2c1e('0x36')](function(){_0x3021d0();});}else{_0x3021d0();}}},'charset':'utf8mb4','collate':'utf8mb4_unicode_ci'});};