Built motion from commit 3c2ce842.|2.6.31
[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 _0xcd40=['json','offset','undefined','count','limit','Content-Range','update','end','sendStatus','stack','name','send','index','WhatsappMessage','rawAttributes','fieldName','key','model','map','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','type','VIRTUAL','options','includeAll','include','findAll','rows','show','params','find','create','body','destroy','describe','accept','whatsapp','acceptMessage','reject','UserId','user','agent','get','WhatsappInteraction','interaction','[WHATSAPPMESSAGE:REJECT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','role','stringify','RejectMessage','rejectMessage','SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20','ContactId','sequelize','Sequelize','SELECT','contact','User','fullname','email','interface','SIP/%s','motionChannel','channel','EventManager','rejectmessage','WhatsappAccountId','WhatsppMessage,\x20%s,\x20%s,\x20%s','received\x20delivery\x20report\x20from','inspect','twilio','MessageSid','MessageStatus','WhatsappAccount,\x20%s,\x20%s,\x20%s','ioredis','../../components/interaction/service','../../components/parsers/qs','../../config/logger','../../config/environment','../../mysqldb','redis','defaults','localhost','socket.io-emitter','./whatsappMessage.socket','register','jayson/promise','client','http','whatsapp-interactions','request','then','info','WhatsappMessage,\x20%s,\x20%s','request\x20sent','debug','WhatsappMessage,\x20%s,\x20%s,\x20%s','error','code','message','catch','status'];(function(_0x1a2b00,_0x49c0d6){var _0x5c3cfb=function(_0x5ecd11){while(--_0x5ecd11){_0x1a2b00['push'](_0x1a2b00['shift']());}};_0x5c3cfb(++_0x49c0d6);}(_0xcd40,0xc8));var _0x0cd4=function(_0x10973c,_0x5a0c6b){_0x10973c=_0x10973c-0x0;var _0x54bbf4=_0xcd40[_0x10973c];return _0x54bbf4;};'use strict';var util=require('util');var _=require('lodash');var Redis=require(_0x0cd4('0x0'));var interactionService=require(_0x0cd4('0x1'));var qs=require(_0x0cd4('0x2'));var logger=require(_0x0cd4('0x3'))('api');var config=require(_0x0cd4('0x4'));var db=require(_0x0cd4('0x5'))['db'];config[_0x0cd4('0x6')]=_[_0x0cd4('0x7')](config['redis'],{'host':_0x0cd4('0x8'),'port':0x18eb});var socket=require(_0x0cd4('0x9'))(new Redis(config[_0x0cd4('0x6')]));require(_0x0cd4('0xa'))[_0x0cd4('0xb')](socket);var jayson=require(_0x0cd4('0xc'));var client=jayson[_0x0cd4('0xd')][_0x0cd4('0xe')]({'port':0x232c});var client9002=jayson[_0x0cd4('0xd')][_0x0cd4('0xe')]({'port':0x232a});var interaction_log=require(_0x0cd4('0x3'))(_0x0cd4('0xf'));function respondWithRpcPromise(_0x1ff004,_0x40c140,_0x2837ec,_0x4db199){return new Promise(function(_0x18942b,_0x250edb){var _0x371f25=_0x4db199||client;return _0x371f25[_0x0cd4('0x10')](_0x1ff004,_0x2837ec)[_0x0cd4('0x11')](function(_0x1305d6){logger[_0x0cd4('0x12')](_0x0cd4('0x13'),_0x40c140,_0x0cd4('0x14'));logger[_0x0cd4('0x15')](_0x0cd4('0x16'),_0x40c140,'request\x20sent',JSON['stringify'](_0x1305d6));if(_0x1305d6[_0x0cd4('0x17')]){if(_0x1305d6[_0x0cd4('0x17')][_0x0cd4('0x18')]===0x1f4){logger['error'](_0x0cd4('0x13'),_0x40c140,_0x1305d6[_0x0cd4('0x17')][_0x0cd4('0x19')]);return _0x250edb(_0x1305d6[_0x0cd4('0x17')][_0x0cd4('0x19')]);}logger[_0x0cd4('0x17')]('WhatsappMessage,\x20%s,\x20%s',_0x40c140,_0x1305d6[_0x0cd4('0x17')][_0x0cd4('0x19')]);return _0x18942b(_0x1305d6['error']['message']);}else{logger[_0x0cd4('0x12')]('WhatsappMessage,\x20%s,\x20%s',_0x40c140,_0x0cd4('0x14'));_0x18942b(_0x1305d6['result'][_0x0cd4('0x19')]);}})[_0x0cd4('0x1a')](function(_0x3c6341){logger[_0x0cd4('0x17')](_0x0cd4('0x13'),_0x40c140,_0x3c6341);_0x250edb(_0x3c6341);});});}function respondWithResult(_0x55fc22,_0x3e3f47){_0x3e3f47=_0x3e3f47||0xc8;return function(_0x574773){if(_0x574773){return _0x55fc22[_0x0cd4('0x1b')](_0x3e3f47)[_0x0cd4('0x1c')](_0x574773);}};}function respondWithFilteredResult(_0x1b08f8,_0x30c70c){return function(_0x185c46){if(_0x185c46){var _0xc895ef=typeof _0x30c70c[_0x0cd4('0x1d')]==='undefined'&&typeof _0x30c70c['limit']===_0x0cd4('0x1e');var _0x255df7=_0x185c46[_0x0cd4('0x1f')];var _0x1e180e=_0xc895ef?0x0:_0x30c70c[_0x0cd4('0x1d')];var _0x1f0b94=_0xc895ef?_0x185c46[_0x0cd4('0x1f')]:_0x30c70c[_0x0cd4('0x1d')]+_0x30c70c[_0x0cd4('0x20')];var _0x56d509;if(_0x1f0b94>=_0x255df7){_0x1f0b94=_0x255df7;_0x56d509=0xc8;}else{_0x56d509=0xce;}_0x1b08f8[_0x0cd4('0x1b')](_0x56d509);return _0x1b08f8['set'](_0x0cd4('0x21'),_0x1e180e+'-'+_0x1f0b94+'/'+_0x255df7)[_0x0cd4('0x1c')](_0x185c46);}return null;};}function saveUpdates(_0x40e333){return function(_0x46f95a){if(_0x46f95a){return _0x46f95a[_0x0cd4('0x22')](_0x40e333)[_0x0cd4('0x11')](function(_0x4d722b){return _0x4d722b;});}return null;};}function removeEntity(_0x214cca){return function(_0xabf725){if(_0xabf725){return _0xabf725['destroy']()[_0x0cd4('0x11')](function(){_0x214cca[_0x0cd4('0x1b')](0xcc)[_0x0cd4('0x23')]();});}};}function handleEntityNotFound(_0x3faa8f){return function(_0x486eb4){if(!_0x486eb4){_0x3faa8f[_0x0cd4('0x24')](0x194);}return _0x486eb4;};}function handleError(_0x1ec382,_0x20d745){_0x20d745=_0x20d745||0x1f4;return function(_0x210546){logger['error'](_0x210546[_0x0cd4('0x25')]);if(_0x210546[_0x0cd4('0x26')]){delete _0x210546[_0x0cd4('0x26')];}_0x1ec382['status'](_0x20d745)[_0x0cd4('0x27')](_0x210546);};}exports[_0x0cd4('0x28')]=function(_0x55acd6,_0x4523fd){var _0x2ed093={},_0x189335={},_0x40ebcf={'count':0x0,'rows':[]};var _0x55192c=_['map'](db[_0x0cd4('0x29')][_0x0cd4('0x2a')],function(_0x4c9813){return{'name':_0x4c9813[_0x0cd4('0x2b')],'type':_0x4c9813['type'][_0x0cd4('0x2c')]};});_0x189335[_0x0cd4('0x2d')]=_[_0x0cd4('0x2e')](_0x55192c,'name');_0x189335[_0x0cd4('0x2f')]=_[_0x0cd4('0x30')](_0x55acd6[_0x0cd4('0x2f')]);_0x189335[_0x0cd4('0x31')]=_[_0x0cd4('0x32')](_0x189335[_0x0cd4('0x2d')],_0x189335['query']);_0x2ed093[_0x0cd4('0x33')]=_[_0x0cd4('0x32')](_0x189335[_0x0cd4('0x2d')],qs[_0x0cd4('0x34')](_0x55acd6['query']['fields']));_0x2ed093[_0x0cd4('0x33')]=_0x2ed093[_0x0cd4('0x33')][_0x0cd4('0x35')]?_0x2ed093[_0x0cd4('0x33')]:_0x189335[_0x0cd4('0x2d')];if(!_0x55acd6[_0x0cd4('0x2f')][_0x0cd4('0x36')](_0x0cd4('0x37'))){_0x2ed093[_0x0cd4('0x20')]=qs['limit'](_0x55acd6['query'][_0x0cd4('0x20')]);_0x2ed093[_0x0cd4('0x1d')]=qs[_0x0cd4('0x1d')](_0x55acd6[_0x0cd4('0x2f')][_0x0cd4('0x1d')]);}_0x2ed093[_0x0cd4('0x38')]=qs[_0x0cd4('0x39')](_0x55acd6['query'][_0x0cd4('0x39')]);_0x2ed093[_0x0cd4('0x3a')]=qs[_0x0cd4('0x31')](_[_0x0cd4('0x3b')](_0x55acd6[_0x0cd4('0x2f')],_0x189335[_0x0cd4('0x31')]),_0x55192c);if(_0x55acd6[_0x0cd4('0x2f')][_0x0cd4('0x3c')]){_0x2ed093[_0x0cd4('0x3a')]=_[_0x0cd4('0x3d')](_0x2ed093[_0x0cd4('0x3a')],{'$or':_[_0x0cd4('0x2e')](_0x55192c,function(_0x40fab3){if(_0x40fab3[_0x0cd4('0x3e')]!==_0x0cd4('0x3f')){var _0x2f42d7={};_0x2f42d7[_0x40fab3[_0x0cd4('0x26')]]={'$like':'%'+_0x55acd6['query'][_0x0cd4('0x3c')]+'%'};return _0x2f42d7;}})});}_0x2ed093=_['merge']({},_0x2ed093,_0x55acd6[_0x0cd4('0x40')]);var _0xc7a3f1={'where':_0x2ed093[_0x0cd4('0x3a')]};return db[_0x0cd4('0x29')]['count'](_0xc7a3f1)[_0x0cd4('0x11')](function(_0x2ebbd3){_0x40ebcf[_0x0cd4('0x1f')]=_0x2ebbd3;if(_0x55acd6[_0x0cd4('0x2f')][_0x0cd4('0x41')]){_0x2ed093[_0x0cd4('0x42')]=[{'all':!![]}];}return db[_0x0cd4('0x29')][_0x0cd4('0x43')](_0x2ed093);})[_0x0cd4('0x11')](function(_0x268566){_0x40ebcf[_0x0cd4('0x44')]=_0x268566;return _0x40ebcf;})['then'](respondWithFilteredResult(_0x4523fd,_0x2ed093))[_0x0cd4('0x1a')](handleError(_0x4523fd,null));};exports[_0x0cd4('0x45')]=function(_0x1cf7f6,_0x519fd4){var _0x14996f={'raw':!![],'where':{'id':_0x1cf7f6[_0x0cd4('0x46')]['id']}},_0x594123={};_0x594123[_0x0cd4('0x2d')]=_[_0x0cd4('0x30')](db[_0x0cd4('0x29')]['rawAttributes']);_0x594123[_0x0cd4('0x2f')]=_[_0x0cd4('0x30')](_0x1cf7f6['query']);_0x594123[_0x0cd4('0x31')]=_['intersection'](_0x594123[_0x0cd4('0x2d')],_0x594123[_0x0cd4('0x2f')]);_0x14996f[_0x0cd4('0x33')]=_['intersection'](_0x594123[_0x0cd4('0x2d')],qs[_0x0cd4('0x34')](_0x1cf7f6[_0x0cd4('0x2f')][_0x0cd4('0x34')]));_0x14996f['attributes']=_0x14996f[_0x0cd4('0x33')][_0x0cd4('0x35')]?_0x14996f['attributes']:_0x594123[_0x0cd4('0x2d')];if(_0x1cf7f6[_0x0cd4('0x2f')][_0x0cd4('0x41')]){_0x14996f[_0x0cd4('0x42')]=[{'all':!![]}];}_0x14996f=_['merge']({},_0x14996f,_0x1cf7f6['options']);return db[_0x0cd4('0x29')][_0x0cd4('0x47')](_0x14996f)[_0x0cd4('0x11')](handleEntityNotFound(_0x519fd4,null))[_0x0cd4('0x11')](respondWithResult(_0x519fd4,null))[_0x0cd4('0x1a')](handleError(_0x519fd4,null));};exports[_0x0cd4('0x48')]=function(_0x40944d,_0x4cc88e){return db[_0x0cd4('0x29')][_0x0cd4('0x48')](_0x40944d[_0x0cd4('0x49')],{})[_0x0cd4('0x11')](respondWithResult(_0x4cc88e,0xc9))[_0x0cd4('0x1a')](handleError(_0x4cc88e,null));};exports[_0x0cd4('0x22')]=function(_0x12ac15,_0x4d7891){if(_0x12ac15[_0x0cd4('0x49')]['id']){delete _0x12ac15[_0x0cd4('0x49')]['id'];}return db[_0x0cd4('0x29')]['find']({'where':{'id':_0x12ac15[_0x0cd4('0x46')]['id']}})['then'](handleEntityNotFound(_0x4d7891,null))[_0x0cd4('0x11')](saveUpdates(_0x12ac15['body'],null))[_0x0cd4('0x11')](respondWithResult(_0x4d7891,null))[_0x0cd4('0x1a')](handleError(_0x4d7891,null));};exports[_0x0cd4('0x4a')]=function(_0x3615b5,_0x28c653){return db[_0x0cd4('0x29')]['find']({'where':{'id':_0x3615b5[_0x0cd4('0x46')]['id']}})['then'](handleEntityNotFound(_0x28c653,null))[_0x0cd4('0x11')](removeEntity(_0x28c653,null))[_0x0cd4('0x1a')](handleError(_0x28c653,null));};exports['describe']=function(_0x2da10d,_0x1373af){return db[_0x0cd4('0x29')][_0x0cd4('0x4b')]()[_0x0cd4('0x11')](respondWithResult(_0x1373af,null))[_0x0cd4('0x1a')](handleError(_0x1373af,null));};exports[_0x0cd4('0x4c')]=function(_0x2558be,_0x180149){var _0x1e8a04=_0x0cd4('0x4d');return interactionService[_0x0cd4('0x4e')](_0x2558be,_0x1e8a04)[_0x0cd4('0x11')](respondWithResult(_0x180149,null))['catch'](handleError(_0x180149,null));};exports[_0x0cd4('0x4f')]=function(_0x43c337,_0x23ad0c){var _0x30baad={'agent':{},'channel':_0x0cd4('0x4d')};if(_0x43c337[_0x0cd4('0x49')]['id']){delete _0x43c337[_0x0cd4('0x49')]['id'];}_0x43c337[_0x0cd4('0x49')][_0x0cd4('0x50')]=_0x43c337[_0x0cd4('0x49')][_0x0cd4('0x50')]||_0x43c337[_0x0cd4('0x51')]['id'];_0x30baad[_0x0cd4('0x52')]['id']=_0x43c337['body']['UserId'];return db[_0x0cd4('0x29')]['find']({'where':{'id':_0x43c337[_0x0cd4('0x46')]['id'],'UserId':null}})[_0x0cd4('0x11')](handleEntityNotFound(_0x23ad0c,null))[_0x0cd4('0x11')](function(_0x2930d3){if(_0x2930d3){_0x30baad[_0x0cd4('0x19')]=_0x2930d3[_0x0cd4('0x53')]({'plain':!![]});return db[_0x0cd4('0x54')]['find']({'where':{'id':_0x2930d3['WhatsappInteractionId']}});}return null;})[_0x0cd4('0x11')](handleEntityNotFound(_0x23ad0c,null))[_0x0cd4('0x11')](function(_0x1f3549){if(_0x1f3549){_0x30baad[_0x0cd4('0x55')]=_0x1f3549[_0x0cd4('0x53')]({'plain':!![]});interaction_log[_0x0cd4('0x12')](_0x0cd4('0x56'),_0x43c337[_0x0cd4('0x51')]['id'],_0x43c337[_0x0cd4('0x51')][_0x0cd4('0x26')],_0x43c337['user'][_0x0cd4('0x57')],_0x30baad[_0x0cd4('0x55')]['id'],_0x43c337['body']?JSON[_0x0cd4('0x58')](_0x43c337[_0x0cd4('0x49')]):'null');return respondWithRpcPromise(_0x0cd4('0x59'),_0x0cd4('0x5a'),_0x30baad);}return null;})[_0x0cd4('0x11')](function(_0x505e02){var _0x410e62=_0x0cd4('0x5b')+_0x505e02['message'][_0x0cd4('0x5c')];return db[_0x0cd4('0x5d')][_0x0cd4('0x2f')](_0x410e62,{'type':db[_0x0cd4('0x5e')]['QueryTypes'][_0x0cd4('0x5f')],'raw':!![]})[_0x0cd4('0x11')](function(_0xdbd1b2){return _0xdbd1b2;});})['then'](function(_0x351096){if(_0x351096){_0x30baad['message'][_0x0cd4('0x60')]=_0x351096[0x0];if(!_0x43c337['body'][_0x0cd4('0x50')])return;return db[_0x0cd4('0x61')][_0x0cd4('0x47')]({'where':{'id':_0x43c337[_0x0cd4('0x49')][_0x0cd4('0x50')],'role':'agent'},'attributes':['id',_0x0cd4('0x26'),_0x0cd4('0x62'),_0x0cd4('0x63'),'internal'],'raw':!![]});}return null;})[_0x0cd4('0x11')](function(_0x35f62a){if(!_0x35f62a)return null;_0x30baad['message'][_0x0cd4('0x52')]=_0x35f62a;return _0x30baad;})[_0x0cd4('0x11')](function(_0x3953ee){if(_0x3953ee){_0x3953ee[_0x0cd4('0x19')][_0x0cd4('0x64')]=util['format'](_0x0cd4('0x65'),_0x43c337['user'][_0x0cd4('0x26')]);_0x3953ee['message']['channel']=_0x30baad['channel'];_0x3953ee['message'][_0x0cd4('0x66')]=_0x30baad[_0x0cd4('0x67')];_0x3953ee[_0x0cd4('0x19')]['event']='reject';respondWithRpcPromise(_0x0cd4('0x68'),_0x0cd4('0x68'),{'event':_0x0cd4('0x69'),'message':_0x3953ee[_0x0cd4('0x19')]},client9002);return _0x30baad;}return null;})[_0x0cd4('0x11')](respondWithResult(_0x23ad0c,null))[_0x0cd4('0x1a')](handleError(_0x23ad0c,null));};exports[_0x0cd4('0x1b')]=function(_0x369403,_0x4c68b2){if(_0x369403['body']['id']){delete _0x369403[_0x0cd4('0x49')]['id'];}var _0x2dd403;return db['WhatsappMessage'][_0x0cd4('0x47')]({'where':{'id':_0x369403[_0x0cd4('0x46')]['id']}})[_0x0cd4('0x11')](handleEntityNotFound(_0x4c68b2,null))[_0x0cd4('0x11')](function(_0x1a2151){if(_0x1a2151){_0x2dd403=_0x1a2151;return db['WhatsappAccount']['find']({'where':{'id':_0x1a2151[_0x0cd4('0x6a')]}});}})[_0x0cd4('0x11')](handleEntityNotFound(_0x4c68b2,null))['then'](function(_0x597494){if(_0x597494){logger[_0x0cd4('0x15')](_0x0cd4('0x6b'),_0x0cd4('0x1b'),_0x0cd4('0x6c'),_0x597494[_0x0cd4('0x3e')],util[_0x0cd4('0x6d')](_0x369403[_0x0cd4('0x49')],{'showHidden':![],'depth':null}));switch(_0x597494[_0x0cd4('0x3e')]){case _0x0cd4('0x6e'):if(_0x369403[_0x0cd4('0x49')][_0x0cd4('0x6f')]&&_0x369403[_0x0cd4('0x49')][_0x0cd4('0x6f')]===_0x2dd403['messageId']&&_0x369403[_0x0cd4('0x49')][_0x0cd4('0x70')]&&_0x369403['body'][_0x0cd4('0x70')]==='read'){return _0x2dd403[_0x0cd4('0x22')]({'read':!![]});}else{logger[_0x0cd4('0x17')](_0x0cd4('0x71'),'status','twilio',util[_0x0cd4('0x6d')](_0x369403[_0x0cd4('0x49')],{'showHidden':![],'depth':null}));}break;}return _0x2dd403;}})[_0x0cd4('0x11')](respondWithResult(_0x4c68b2,null))[_0x0cd4('0x1a')](handleError(_0x4c68b2,null));};