Built motion from commit 10af8726.|2.6.34
[motion2.git] / server / api / whatsappMessage / whatsappMessage.controller.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 _0x54e3=['request\x20sent','debug','stringify','error','code','message','result','catch','status','json','offset','undefined','limit','set','Content-Range','update','then','destroy','end','sendStatus','stack','name','send','index','WhatsappMessage','rawAttributes','type','key','map','query','keys','filters','intersection','attributes','model','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','options','count','includeAll','include','findAll','rows','show','params','body','find','describe','accept','whatsapp','acceptMessage','reject','UserId','user','get','WhatsappInteraction','WhatsappInteractionId','interaction','[WHATSAPPMESSAGE:REJECT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','role','RejectMessage','rejectMessage','ContactId','sequelize','Sequelize','QueryTypes','User','agent','fullname','internal','interface','format','SIP/%s','channel','motionChannel','event','EventManager','rejectmessage','WhatsappAccount','WhatsappAccountId','WhatsppMessage,\x20%s,\x20%s,\x20%s','received\x20delivery\x20report\x20from','twilio','MessageSid','messageId','MessageStatus','read','WhatsappAccount,\x20%s,\x20%s,\x20%s','inspect','util','ioredis','../../components/parsers/qs','../../config/logger','api','../../config/environment','../../mysqldb','defaults','redis','socket.io-emitter','./whatsappMessage.socket','client','whatsapp-interactions','request','info','WhatsappMessage,\x20%s,\x20%s'];(function(_0x30cd9a,_0x5ea061){var _0x3b0a03=function(_0x34dc00){while(--_0x34dc00){_0x30cd9a['push'](_0x30cd9a['shift']());}};_0x3b0a03(++_0x5ea061);}(_0x54e3,0x143));var _0x354e=function(_0x48d02c,_0x333397){_0x48d02c=_0x48d02c-0x0;var _0x5b03d4=_0x54e3[_0x48d02c];return _0x5b03d4;};'use strict';var util=require(_0x354e('0x0'));var _=require('lodash');var Redis=require(_0x354e('0x1'));var interactionService=require('../../components/interaction/service');var qs=require(_0x354e('0x2'));var logger=require(_0x354e('0x3'))(_0x354e('0x4'));var config=require(_0x354e('0x5'));var db=require(_0x354e('0x6'))['db'];config['redis']=_[_0x354e('0x7')](config[_0x354e('0x8')],{'host':'localhost','port':0x18eb});var socket=require(_0x354e('0x9'))(new Redis(config['redis']));require(_0x354e('0xa'))['register'](socket);var jayson=require('jayson/promise');var client=jayson['client']['http']({'port':0x232c});var client9002=jayson[_0x354e('0xb')]['http']({'port':0x232a});var interaction_log=require(_0x354e('0x3'))(_0x354e('0xc'));function respondWithRpcPromise(_0x5e3812,_0x279471,_0x208360,_0xd789a6){return new Promise(function(_0x12f2d8,_0x4605a5){var _0x312909=_0xd789a6||client;return _0x312909[_0x354e('0xd')](_0x5e3812,_0x208360)['then'](function(_0x53e335){logger[_0x354e('0xe')](_0x354e('0xf'),_0x279471,_0x354e('0x10'));logger[_0x354e('0x11')]('WhatsappMessage,\x20%s,\x20%s,\x20%s',_0x279471,_0x354e('0x10'),JSON[_0x354e('0x12')](_0x53e335));if(_0x53e335[_0x354e('0x13')]){if(_0x53e335[_0x354e('0x13')][_0x354e('0x14')]===0x1f4){logger['error'](_0x354e('0xf'),_0x279471,_0x53e335[_0x354e('0x13')][_0x354e('0x15')]);return _0x4605a5(_0x53e335[_0x354e('0x13')][_0x354e('0x15')]);}logger['error'](_0x354e('0xf'),_0x279471,_0x53e335[_0x354e('0x13')]['message']);return _0x12f2d8(_0x53e335['error']['message']);}else{logger[_0x354e('0xe')](_0x354e('0xf'),_0x279471,_0x354e('0x10'));_0x12f2d8(_0x53e335[_0x354e('0x16')][_0x354e('0x15')]);}})[_0x354e('0x17')](function(_0x584dd8){logger[_0x354e('0x13')](_0x354e('0xf'),_0x279471,_0x584dd8);_0x4605a5(_0x584dd8);});});}function respondWithResult(_0x32454f,_0x3defa2){_0x3defa2=_0x3defa2||0xc8;return function(_0x2f090f){if(_0x2f090f){return _0x32454f[_0x354e('0x18')](_0x3defa2)[_0x354e('0x19')](_0x2f090f);}};}function respondWithFilteredResult(_0xcfe404,_0x5163df){return function(_0x3c5a4e){if(_0x3c5a4e){var _0x1121ef=typeof _0x5163df[_0x354e('0x1a')]===_0x354e('0x1b')&&typeof _0x5163df[_0x354e('0x1c')]==='undefined';var _0x849021=_0x3c5a4e['count'];var _0x1bb119=_0x1121ef?0x0:_0x5163df[_0x354e('0x1a')];var _0x2bffbb=_0x1121ef?_0x3c5a4e['count']:_0x5163df[_0x354e('0x1a')]+_0x5163df[_0x354e('0x1c')];var _0x3b4947;if(_0x2bffbb>=_0x849021){_0x2bffbb=_0x849021;_0x3b4947=0xc8;}else{_0x3b4947=0xce;}_0xcfe404[_0x354e('0x18')](_0x3b4947);return _0xcfe404[_0x354e('0x1d')](_0x354e('0x1e'),_0x1bb119+'-'+_0x2bffbb+'/'+_0x849021)['json'](_0x3c5a4e);}return null;};}function saveUpdates(_0x434f45){return function(_0x3f8ee1){if(_0x3f8ee1){return _0x3f8ee1[_0x354e('0x1f')](_0x434f45)[_0x354e('0x20')](function(_0x5b6fad){return _0x5b6fad;});}return null;};}function removeEntity(_0x1949b3){return function(_0x34cd2b){if(_0x34cd2b){return _0x34cd2b[_0x354e('0x21')]()[_0x354e('0x20')](function(){_0x1949b3['status'](0xcc)[_0x354e('0x22')]();});}};}function handleEntityNotFound(_0x45ee96){return function(_0x2c8269){if(!_0x2c8269){_0x45ee96[_0x354e('0x23')](0x194);}return _0x2c8269;};}function handleError(_0x4691a3,_0x4e58a1){_0x4e58a1=_0x4e58a1||0x1f4;return function(_0x68a40a){logger[_0x354e('0x13')](_0x68a40a[_0x354e('0x24')]);if(_0x68a40a[_0x354e('0x25')]){delete _0x68a40a[_0x354e('0x25')];}_0x4691a3[_0x354e('0x18')](_0x4e58a1)[_0x354e('0x26')](_0x68a40a);};}exports[_0x354e('0x27')]=function(_0x5766e0,_0x127cdb){var _0x2bbb61={},_0x5e91b4={},_0x1af95c={'count':0x0,'rows':[]};var _0x5f3cb1=_['map'](db[_0x354e('0x28')][_0x354e('0x29')],function(_0x296ffa){return{'name':_0x296ffa['fieldName'],'type':_0x296ffa[_0x354e('0x2a')][_0x354e('0x2b')]};});_0x5e91b4['model']=_[_0x354e('0x2c')](_0x5f3cb1,'name');_0x5e91b4[_0x354e('0x2d')]=_[_0x354e('0x2e')](_0x5766e0[_0x354e('0x2d')]);_0x5e91b4[_0x354e('0x2f')]=_[_0x354e('0x30')](_0x5e91b4['model'],_0x5e91b4['query']);_0x2bbb61[_0x354e('0x31')]=_[_0x354e('0x30')](_0x5e91b4[_0x354e('0x32')],qs[_0x354e('0x33')](_0x5766e0[_0x354e('0x2d')]['fields']));_0x2bbb61['attributes']=_0x2bbb61[_0x354e('0x31')][_0x354e('0x34')]?_0x2bbb61['attributes']:_0x5e91b4[_0x354e('0x32')];if(!_0x5766e0[_0x354e('0x2d')][_0x354e('0x35')](_0x354e('0x36'))){_0x2bbb61[_0x354e('0x1c')]=qs['limit'](_0x5766e0['query']['limit']);_0x2bbb61['offset']=qs[_0x354e('0x1a')](_0x5766e0[_0x354e('0x2d')][_0x354e('0x1a')]);}_0x2bbb61[_0x354e('0x37')]=qs[_0x354e('0x38')](_0x5766e0['query']['sort']);_0x2bbb61[_0x354e('0x39')]=qs[_0x354e('0x2f')](_[_0x354e('0x3a')](_0x5766e0['query'],_0x5e91b4['filters']),_0x5f3cb1);if(_0x5766e0[_0x354e('0x2d')][_0x354e('0x3b')]){_0x2bbb61['where']=_[_0x354e('0x3c')](_0x2bbb61[_0x354e('0x39')],{'$or':_[_0x354e('0x2c')](_0x5f3cb1,function(_0x1baf00){if(_0x1baf00['type']!=='VIRTUAL'){var _0x2a0f6c={};_0x2a0f6c[_0x1baf00['name']]={'$like':'%'+_0x5766e0[_0x354e('0x2d')][_0x354e('0x3b')]+'%'};return _0x2a0f6c;}})});}_0x2bbb61=_[_0x354e('0x3c')]({},_0x2bbb61,_0x5766e0[_0x354e('0x3d')]);var _0x38e051={'where':_0x2bbb61['where']};return db[_0x354e('0x28')][_0x354e('0x3e')](_0x38e051)['then'](function(_0x36618f){_0x1af95c[_0x354e('0x3e')]=_0x36618f;if(_0x5766e0[_0x354e('0x2d')][_0x354e('0x3f')]){_0x2bbb61[_0x354e('0x40')]=[{'all':!![]}];}return db[_0x354e('0x28')][_0x354e('0x41')](_0x2bbb61);})['then'](function(_0x40a5d2){_0x1af95c[_0x354e('0x42')]=_0x40a5d2;return _0x1af95c;})[_0x354e('0x20')](respondWithFilteredResult(_0x127cdb,_0x2bbb61))[_0x354e('0x17')](handleError(_0x127cdb,null));};exports[_0x354e('0x43')]=function(_0x40aa00,_0xc4ed99){var _0x354793={'raw':!![],'where':{'id':_0x40aa00[_0x354e('0x44')]['id']}},_0x2ae173={};_0x2ae173[_0x354e('0x32')]=_['keys'](db[_0x354e('0x28')]['rawAttributes']);_0x2ae173[_0x354e('0x2d')]=_[_0x354e('0x2e')](_0x40aa00[_0x354e('0x2d')]);_0x2ae173['filters']=_['intersection'](_0x2ae173[_0x354e('0x32')],_0x2ae173['query']);_0x354793[_0x354e('0x31')]=_['intersection'](_0x2ae173[_0x354e('0x32')],qs['fields'](_0x40aa00[_0x354e('0x2d')]['fields']));_0x354793[_0x354e('0x31')]=_0x354793[_0x354e('0x31')][_0x354e('0x34')]?_0x354793[_0x354e('0x31')]:_0x2ae173['model'];if(_0x40aa00[_0x354e('0x2d')][_0x354e('0x3f')]){_0x354793[_0x354e('0x40')]=[{'all':!![]}];}_0x354793=_['merge']({},_0x354793,_0x40aa00['options']);return db[_0x354e('0x28')]['find'](_0x354793)[_0x354e('0x20')](handleEntityNotFound(_0xc4ed99,null))[_0x354e('0x20')](respondWithResult(_0xc4ed99,null))[_0x354e('0x17')](handleError(_0xc4ed99,null));};exports['create']=function(_0x16ebb3,_0x5befd0){return db[_0x354e('0x28')]['create'](_0x16ebb3[_0x354e('0x45')],{})['then'](respondWithResult(_0x5befd0,0xc9))['catch'](handleError(_0x5befd0,null));};exports['update']=function(_0x3d9a53,_0x5c1fe7){if(_0x3d9a53[_0x354e('0x45')]['id']){delete _0x3d9a53[_0x354e('0x45')]['id'];}return db['WhatsappMessage'][_0x354e('0x46')]({'where':{'id':_0x3d9a53[_0x354e('0x44')]['id']}})[_0x354e('0x20')](handleEntityNotFound(_0x5c1fe7,null))[_0x354e('0x20')](saveUpdates(_0x3d9a53[_0x354e('0x45')],null))['then'](respondWithResult(_0x5c1fe7,null))[_0x354e('0x17')](handleError(_0x5c1fe7,null));};exports[_0x354e('0x21')]=function(_0x3c63b5,_0x18bf7c){return db[_0x354e('0x28')]['find']({'where':{'id':_0x3c63b5['params']['id']}})['then'](handleEntityNotFound(_0x18bf7c,null))[_0x354e('0x20')](removeEntity(_0x18bf7c,null))[_0x354e('0x17')](handleError(_0x18bf7c,null));};exports[_0x354e('0x47')]=function(_0x28aaec,_0x5a09ab){return db[_0x354e('0x28')][_0x354e('0x47')]()[_0x354e('0x20')](respondWithResult(_0x5a09ab,null))[_0x354e('0x17')](handleError(_0x5a09ab,null));};exports[_0x354e('0x48')]=function(_0x2b0470,_0x4929b7){var _0x152f19=_0x354e('0x49');return interactionService[_0x354e('0x4a')](_0x2b0470,_0x152f19)[_0x354e('0x20')](respondWithResult(_0x4929b7,null))[_0x354e('0x17')](handleError(_0x4929b7,null));};exports[_0x354e('0x4b')]=function(_0x18c46a,_0x25322f){var _0x10de9b={'agent':{},'channel':_0x354e('0x49')};if(_0x18c46a['body']['id']){delete _0x18c46a[_0x354e('0x45')]['id'];}_0x18c46a[_0x354e('0x45')][_0x354e('0x4c')]=_0x18c46a[_0x354e('0x45')][_0x354e('0x4c')]||_0x18c46a[_0x354e('0x4d')]['id'];_0x10de9b['agent']['id']=_0x18c46a['body'][_0x354e('0x4c')];return db['WhatsappMessage'][_0x354e('0x46')]({'where':{'id':_0x18c46a[_0x354e('0x44')]['id'],'UserId':null}})[_0x354e('0x20')](handleEntityNotFound(_0x25322f,null))[_0x354e('0x20')](function(_0x36b563){if(_0x36b563){_0x10de9b[_0x354e('0x15')]=_0x36b563[_0x354e('0x4e')]({'plain':!![]});return db[_0x354e('0x4f')][_0x354e('0x46')]({'where':{'id':_0x36b563[_0x354e('0x50')]}});}return null;})['then'](handleEntityNotFound(_0x25322f,null))[_0x354e('0x20')](function(_0x3ee60c){if(_0x3ee60c){_0x10de9b[_0x354e('0x51')]=_0x3ee60c[_0x354e('0x4e')]({'plain':!![]});interaction_log['info'](_0x354e('0x52'),_0x18c46a[_0x354e('0x4d')]['id'],_0x18c46a['user'][_0x354e('0x25')],_0x18c46a[_0x354e('0x4d')][_0x354e('0x53')],_0x10de9b[_0x354e('0x51')]['id'],_0x18c46a['body']?JSON['stringify'](_0x18c46a[_0x354e('0x45')]):'null');return respondWithRpcPromise(_0x354e('0x54'),_0x354e('0x55'),_0x10de9b);}return null;})['then'](function(_0x179c5d){var _0x5db867='SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20'+_0x179c5d[_0x354e('0x15')][_0x354e('0x56')];return db[_0x354e('0x57')][_0x354e('0x2d')](_0x5db867,{'type':db[_0x354e('0x58')][_0x354e('0x59')]['SELECT'],'raw':!![]})['then'](function(_0xdd998b){return _0xdd998b;});})[_0x354e('0x20')](function(_0x238119){if(_0x238119){_0x10de9b[_0x354e('0x15')]['contact']=_0x238119[0x0];if(!_0x18c46a[_0x354e('0x45')][_0x354e('0x4c')])return;return db[_0x354e('0x5a')]['find']({'where':{'id':_0x18c46a[_0x354e('0x45')][_0x354e('0x4c')],'role':_0x354e('0x5b')},'attributes':['id',_0x354e('0x25'),_0x354e('0x5c'),'email',_0x354e('0x5d')],'raw':!![]});}return null;})['then'](function(_0x410604){if(!_0x410604)return null;_0x10de9b[_0x354e('0x15')][_0x354e('0x5b')]=_0x410604;return _0x10de9b;})[_0x354e('0x20')](function(_0x257058){if(_0x257058){_0x257058[_0x354e('0x15')][_0x354e('0x5e')]=util[_0x354e('0x5f')](_0x354e('0x60'),_0x18c46a[_0x354e('0x4d')]['name']);_0x257058['message'][_0x354e('0x61')]=_0x10de9b[_0x354e('0x61')];_0x257058[_0x354e('0x15')][_0x354e('0x62')]=_0x10de9b[_0x354e('0x61')];_0x257058[_0x354e('0x15')][_0x354e('0x63')]=_0x354e('0x4b');respondWithRpcPromise(_0x354e('0x64'),'EventManager',{'event':_0x354e('0x65'),'message':_0x257058[_0x354e('0x15')]},client9002);return _0x10de9b;}return null;})[_0x354e('0x20')](respondWithResult(_0x25322f,null))[_0x354e('0x17')](handleError(_0x25322f,null));};exports[_0x354e('0x18')]=function(_0x5d666a,_0x37b07d){if(_0x5d666a[_0x354e('0x45')]['id']){delete _0x5d666a[_0x354e('0x45')]['id'];}var _0x414882;return db[_0x354e('0x28')][_0x354e('0x46')]({'where':{'id':_0x5d666a[_0x354e('0x44')]['id']}})['then'](handleEntityNotFound(_0x37b07d,null))[_0x354e('0x20')](function(_0x39fe11){if(_0x39fe11){_0x414882=_0x39fe11;return db[_0x354e('0x66')]['find']({'where':{'id':_0x39fe11[_0x354e('0x67')]}});}})[_0x354e('0x20')](handleEntityNotFound(_0x37b07d,null))[_0x354e('0x20')](function(_0x5a0a42){if(_0x5a0a42){logger[_0x354e('0x11')](_0x354e('0x68'),_0x354e('0x18'),_0x354e('0x69'),_0x5a0a42[_0x354e('0x2a')],util['inspect'](_0x5d666a[_0x354e('0x45')],{'showHidden':![],'depth':null}));switch(_0x5a0a42[_0x354e('0x2a')]){case _0x354e('0x6a'):if(_0x5d666a[_0x354e('0x45')][_0x354e('0x6b')]&&_0x5d666a[_0x354e('0x45')][_0x354e('0x6b')]===_0x414882[_0x354e('0x6c')]&&_0x5d666a[_0x354e('0x45')][_0x354e('0x6d')]&&_0x5d666a[_0x354e('0x45')][_0x354e('0x6d')]===_0x354e('0x6e')){return _0x414882[_0x354e('0x1f')]({'read':!![]});}else{logger[_0x354e('0x13')](_0x354e('0x6f'),_0x354e('0x18'),'twilio',util[_0x354e('0x70')](_0x5d666a['body'],{'showHidden':![],'depth':null}));}break;}return _0x414882;}})[_0x354e('0x20')](respondWithResult(_0x37b07d,null))[_0x354e('0x17')](handleError(_0x37b07d,null));};