Built motion from commit d13fb11b.|2.6.34
[motion2.git] / server / api / smsMessage / smsMessage.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 _0xc164=['redis','localhost','socket.io-emitter','./smsMessage.socket','register','jayson/promise','client','http','request','then','info','SmsMessage,\x20%s,\x20%s','request\x20sent','debug','SmsMessage,\x20%s,\x20%s,\x20%s','stringify','error','message','result','status','json','offset','undefined','count','limit','destroy','end','sendStatus','stack','name','index','map','SmsMessage','rawAttributes','fieldName','type','key','query','keys','filters','model','attributes','intersection','fields','nolimit','where','merge','VIRTUAL','filter','options','includeAll','findAll','catch','show','params','find','create','body','describe','sms','acceptMessage','reject','UserId','agent','get','SmsInteraction','SmsInteractionId','interaction','[SMSMESSAGE:REJECT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','user','null','RejectMessage','SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20','ContactId','sequelize','Sequelize','SELECT','contact','fullname','email','internal','format','channel','event','EventManager','rejectmessage','SmsAccount','SmsAccountId','received\x20delivery\x20report\x20from','twilio','MessageSid','messageId','update','inspect','plivo','MessageUUID','indexOf','sent','delivered','Status','SmsAccount,\x20%s,\x20%s,\x20%s','plivio','infobip','groupName','DELIVERED','util','lodash','ioredis','../../components/interaction/service','../../components/parsers/qs','api','../../mysqldb'];(function(_0x321bb2,_0x202794){var _0x9c12ed=function(_0x263dd3){while(--_0x263dd3){_0x321bb2['push'](_0x321bb2['shift']());}};_0x9c12ed(++_0x202794);}(_0xc164,0x149));var _0x4c16=function(_0x2b1eb1,_0x446116){_0x2b1eb1=_0x2b1eb1-0x0;var _0x47e40b=_0xc164[_0x2b1eb1];return _0x47e40b;};'use strict';var util=require(_0x4c16('0x0'));var _=require(_0x4c16('0x1'));var Redis=require(_0x4c16('0x2'));var interactionService=require(_0x4c16('0x3'));var qs=require(_0x4c16('0x4'));var logger=require('../../config/logger')(_0x4c16('0x5'));var config=require('../../config/environment');var db=require(_0x4c16('0x6'))['db'];config[_0x4c16('0x7')]=_['defaults'](config[_0x4c16('0x7')],{'host':_0x4c16('0x8'),'port':0x18eb});var socket=require(_0x4c16('0x9'))(new Redis(config['redis']));require(_0x4c16('0xa'))[_0x4c16('0xb')](socket);var jayson=require(_0x4c16('0xc'));var client=jayson[_0x4c16('0xd')]['http']({'port':0x232c});var client9002=jayson[_0x4c16('0xd')][_0x4c16('0xe')]({'port':0x232a});var interaction_log=require('../../config/logger')('sms-interactions');function respondWithRpcPromise(_0x4b94ed,_0x110ba5,_0x38bf1e,_0x1eb71a){return new Promise(function(_0x28e515,_0x3d14e9){var _0x5ed7cd=_0x1eb71a||client;return _0x5ed7cd[_0x4c16('0xf')](_0x4b94ed,_0x38bf1e)[_0x4c16('0x10')](function(_0x255e87){logger[_0x4c16('0x11')](_0x4c16('0x12'),_0x110ba5,_0x4c16('0x13'));logger[_0x4c16('0x14')](_0x4c16('0x15'),_0x110ba5,_0x4c16('0x13'),JSON[_0x4c16('0x16')](_0x255e87));if(_0x255e87[_0x4c16('0x17')]){if(_0x255e87[_0x4c16('0x17')]['code']===0x1f4){logger[_0x4c16('0x17')](_0x4c16('0x12'),_0x110ba5,_0x255e87[_0x4c16('0x17')][_0x4c16('0x18')]);return _0x3d14e9(_0x255e87[_0x4c16('0x17')]['message']);}logger[_0x4c16('0x17')](_0x4c16('0x12'),_0x110ba5,_0x255e87['error'][_0x4c16('0x18')]);return _0x28e515(_0x255e87[_0x4c16('0x17')]['message']);}else{logger[_0x4c16('0x11')]('SmsMessage,\x20%s,\x20%s',_0x110ba5,_0x4c16('0x13'));_0x28e515(_0x255e87[_0x4c16('0x19')][_0x4c16('0x18')]);}})['catch'](function(_0x2166ad){logger[_0x4c16('0x17')]('SmsMessage,\x20%s,\x20%s',_0x110ba5,_0x2166ad);_0x3d14e9(_0x2166ad);});});}function respondWithResult(_0x3feb6d,_0x346bdd){_0x346bdd=_0x346bdd||0xc8;return function(_0x40484c){if(_0x40484c){return _0x3feb6d[_0x4c16('0x1a')](_0x346bdd)[_0x4c16('0x1b')](_0x40484c);}};}function respondWithFilteredResult(_0x219e20,_0x38f164){return function(_0x4b50a4){if(_0x4b50a4){var _0x2e8dde=typeof _0x38f164[_0x4c16('0x1c')]===_0x4c16('0x1d')&&typeof _0x38f164['limit']==='undefined';var _0xaeaa91=_0x4b50a4[_0x4c16('0x1e')];var _0x31c4b3=_0x2e8dde?0x0:_0x38f164[_0x4c16('0x1c')];var _0x5c4d9f=_0x2e8dde?_0x4b50a4['count']:_0x38f164[_0x4c16('0x1c')]+_0x38f164[_0x4c16('0x1f')];var _0x539302;if(_0x5c4d9f>=_0xaeaa91){_0x5c4d9f=_0xaeaa91;_0x539302=0xc8;}else{_0x539302=0xce;}_0x219e20[_0x4c16('0x1a')](_0x539302);return _0x219e20['set']('Content-Range',_0x31c4b3+'-'+_0x5c4d9f+'/'+_0xaeaa91)[_0x4c16('0x1b')](_0x4b50a4);}return null;};}function saveUpdates(_0x1754e0){return function(_0x53f14a){if(_0x53f14a){return _0x53f14a['update'](_0x1754e0)[_0x4c16('0x10')](function(_0x412323){return _0x412323;});}return null;};}function removeEntity(_0x51fbd9){return function(_0x5be5c4){if(_0x5be5c4){return _0x5be5c4[_0x4c16('0x20')]()[_0x4c16('0x10')](function(){_0x51fbd9['status'](0xcc)[_0x4c16('0x21')]();});}};}function handleEntityNotFound(_0x31c1aa){return function(_0x5ed978){if(!_0x5ed978){_0x31c1aa[_0x4c16('0x22')](0x194);}return _0x5ed978;};}function handleError(_0x19df36,_0xc2eed4){_0xc2eed4=_0xc2eed4||0x1f4;return function(_0x378bbc){logger['error'](_0x378bbc[_0x4c16('0x23')]);if(_0x378bbc[_0x4c16('0x24')]){delete _0x378bbc['name'];}_0x19df36[_0x4c16('0x1a')](_0xc2eed4)['send'](_0x378bbc);};}exports[_0x4c16('0x25')]=function(_0x59cb8e,_0x43a24e){var _0x4847fd={},_0x3a822a={},_0x33716e={'count':0x0,'rows':[]};var _0x277a78=_[_0x4c16('0x26')](db[_0x4c16('0x27')][_0x4c16('0x28')],function(_0x25081f){return{'name':_0x25081f[_0x4c16('0x29')],'type':_0x25081f[_0x4c16('0x2a')][_0x4c16('0x2b')]};});_0x3a822a['model']=_[_0x4c16('0x26')](_0x277a78,_0x4c16('0x24'));_0x3a822a[_0x4c16('0x2c')]=_[_0x4c16('0x2d')](_0x59cb8e['query']);_0x3a822a[_0x4c16('0x2e')]=_['intersection'](_0x3a822a[_0x4c16('0x2f')],_0x3a822a['query']);_0x4847fd[_0x4c16('0x30')]=_[_0x4c16('0x31')](_0x3a822a['model'],qs[_0x4c16('0x32')](_0x59cb8e[_0x4c16('0x2c')][_0x4c16('0x32')]));_0x4847fd['attributes']=_0x4847fd[_0x4c16('0x30')]['length']?_0x4847fd[_0x4c16('0x30')]:_0x3a822a[_0x4c16('0x2f')];if(!_0x59cb8e[_0x4c16('0x2c')]['hasOwnProperty'](_0x4c16('0x33'))){_0x4847fd[_0x4c16('0x1f')]=qs[_0x4c16('0x1f')](_0x59cb8e[_0x4c16('0x2c')][_0x4c16('0x1f')]);_0x4847fd[_0x4c16('0x1c')]=qs[_0x4c16('0x1c')](_0x59cb8e[_0x4c16('0x2c')][_0x4c16('0x1c')]);}_0x4847fd['order']=qs['sort'](_0x59cb8e['query']['sort']);_0x4847fd[_0x4c16('0x34')]=qs[_0x4c16('0x2e')](_['pick'](_0x59cb8e[_0x4c16('0x2c')],_0x3a822a[_0x4c16('0x2e')]),_0x277a78);if(_0x59cb8e[_0x4c16('0x2c')]['filter']){_0x4847fd[_0x4c16('0x34')]=_[_0x4c16('0x35')](_0x4847fd[_0x4c16('0x34')],{'$or':_[_0x4c16('0x26')](_0x277a78,function(_0x18989e){if(_0x18989e['type']!==_0x4c16('0x36')){var _0x24de34={};_0x24de34[_0x18989e['name']]={'$like':'%'+_0x59cb8e['query'][_0x4c16('0x37')]+'%'};return _0x24de34;}})});}_0x4847fd=_['merge']({},_0x4847fd,_0x59cb8e[_0x4c16('0x38')]);var _0x961a35={'where':_0x4847fd['where']};return db[_0x4c16('0x27')][_0x4c16('0x1e')](_0x961a35)[_0x4c16('0x10')](function(_0x17a129){_0x33716e[_0x4c16('0x1e')]=_0x17a129;if(_0x59cb8e[_0x4c16('0x2c')][_0x4c16('0x39')]){_0x4847fd['include']=[{'all':!![]}];}return db[_0x4c16('0x27')][_0x4c16('0x3a')](_0x4847fd);})[_0x4c16('0x10')](function(_0x5bca9b){_0x33716e['rows']=_0x5bca9b;return _0x33716e;})[_0x4c16('0x10')](respondWithFilteredResult(_0x43a24e,_0x4847fd))[_0x4c16('0x3b')](handleError(_0x43a24e,null));};exports[_0x4c16('0x3c')]=function(_0x68f4bb,_0x461848){var _0x3c8a6e={'raw':!![],'where':{'id':_0x68f4bb[_0x4c16('0x3d')]['id']}},_0x443d86={};_0x443d86[_0x4c16('0x2f')]=_[_0x4c16('0x2d')](db['SmsMessage']['rawAttributes']);_0x443d86[_0x4c16('0x2c')]=_['keys'](_0x68f4bb[_0x4c16('0x2c')]);_0x443d86['filters']=_[_0x4c16('0x31')](_0x443d86[_0x4c16('0x2f')],_0x443d86[_0x4c16('0x2c')]);_0x3c8a6e[_0x4c16('0x30')]=_[_0x4c16('0x31')](_0x443d86['model'],qs[_0x4c16('0x32')](_0x68f4bb[_0x4c16('0x2c')][_0x4c16('0x32')]));_0x3c8a6e[_0x4c16('0x30')]=_0x3c8a6e[_0x4c16('0x30')]['length']?_0x3c8a6e[_0x4c16('0x30')]:_0x443d86[_0x4c16('0x2f')];if(_0x68f4bb[_0x4c16('0x2c')][_0x4c16('0x39')]){_0x3c8a6e['include']=[{'all':!![]}];}_0x3c8a6e=_[_0x4c16('0x35')]({},_0x3c8a6e,_0x68f4bb[_0x4c16('0x38')]);return db[_0x4c16('0x27')][_0x4c16('0x3e')](_0x3c8a6e)[_0x4c16('0x10')](handleEntityNotFound(_0x461848,null))[_0x4c16('0x10')](respondWithResult(_0x461848,null))[_0x4c16('0x3b')](handleError(_0x461848,null));};exports[_0x4c16('0x3f')]=function(_0x14b329,_0x433014){return db[_0x4c16('0x27')][_0x4c16('0x3f')](_0x14b329[_0x4c16('0x40')],{})[_0x4c16('0x10')](respondWithResult(_0x433014,0xc9))['catch'](handleError(_0x433014,null));};exports['update']=function(_0x36ec4b,_0x383509){if(_0x36ec4b[_0x4c16('0x40')]['id']){delete _0x36ec4b[_0x4c16('0x40')]['id'];}return db[_0x4c16('0x27')][_0x4c16('0x3e')]({'where':{'id':_0x36ec4b[_0x4c16('0x3d')]['id']}})[_0x4c16('0x10')](handleEntityNotFound(_0x383509,null))[_0x4c16('0x10')](saveUpdates(_0x36ec4b[_0x4c16('0x40')],null))[_0x4c16('0x10')](respondWithResult(_0x383509,null))['catch'](handleError(_0x383509,null));};exports[_0x4c16('0x20')]=function(_0x2e5411,_0x40865a){return db[_0x4c16('0x27')][_0x4c16('0x3e')]({'where':{'id':_0x2e5411[_0x4c16('0x3d')]['id']}})['then'](handleEntityNotFound(_0x40865a,null))[_0x4c16('0x10')](removeEntity(_0x40865a,null))[_0x4c16('0x3b')](handleError(_0x40865a,null));};exports['describe']=function(_0x2f687e,_0x16c703){return db[_0x4c16('0x27')][_0x4c16('0x41')]()[_0x4c16('0x10')](respondWithResult(_0x16c703,null))['catch'](handleError(_0x16c703,null));};exports['accept']=function(_0x42476d,_0x5b5e80){var _0x35cf2b=_0x4c16('0x42');return interactionService[_0x4c16('0x43')](_0x42476d,_0x35cf2b)[_0x4c16('0x10')](respondWithResult(_0x5b5e80,null))[_0x4c16('0x3b')](handleError(_0x5b5e80,null));};exports[_0x4c16('0x44')]=function(_0x1775d6,_0x3b7590){var _0x3ba8d4={'agent':{},'channel':_0x4c16('0x42')};if(_0x1775d6[_0x4c16('0x40')]['id']){delete _0x1775d6[_0x4c16('0x40')]['id'];}_0x1775d6[_0x4c16('0x40')][_0x4c16('0x45')]=_0x1775d6[_0x4c16('0x40')]['UserId']||_0x1775d6['user']['id'];_0x3ba8d4[_0x4c16('0x46')]['id']=_0x1775d6[_0x4c16('0x40')][_0x4c16('0x45')];return db['SmsMessage'][_0x4c16('0x3e')]({'where':{'id':_0x1775d6[_0x4c16('0x3d')]['id'],'UserId':null}})['then'](handleEntityNotFound(_0x3b7590,null))[_0x4c16('0x10')](function(_0x236207){if(_0x236207){_0x3ba8d4['message']=_0x236207[_0x4c16('0x47')]({'plain':!![]});return db[_0x4c16('0x48')][_0x4c16('0x3e')]({'where':{'id':_0x236207[_0x4c16('0x49')]}});}return null;})[_0x4c16('0x10')](handleEntityNotFound(_0x3b7590,null))[_0x4c16('0x10')](function(_0x279f67){if(_0x279f67){_0x3ba8d4[_0x4c16('0x4a')]=_0x279f67[_0x4c16('0x47')]({'plain':!![]});interaction_log['info'](_0x4c16('0x4b'),_0x1775d6[_0x4c16('0x4c')]['id'],_0x1775d6[_0x4c16('0x4c')][_0x4c16('0x24')],_0x1775d6[_0x4c16('0x4c')]['role'],_0x3ba8d4['interaction']['id'],_0x1775d6[_0x4c16('0x40')]?JSON['stringify'](_0x1775d6[_0x4c16('0x40')]):_0x4c16('0x4d'));return respondWithRpcPromise(_0x4c16('0x4e'),'rejectMessage',_0x3ba8d4);}return null;})['then'](function(_0xf30f7a){var _0x2c2f41=_0x4c16('0x4f')+_0xf30f7a[_0x4c16('0x18')][_0x4c16('0x50')];return db[_0x4c16('0x51')]['query'](_0x2c2f41,{'type':db[_0x4c16('0x52')]['QueryTypes'][_0x4c16('0x53')],'raw':!![]})[_0x4c16('0x10')](function(_0x13a4ac){return _0x13a4ac;});})['then'](function(_0x1b8987){if(_0x1b8987){_0x3ba8d4[_0x4c16('0x18')][_0x4c16('0x54')]=_0x1b8987[0x0];if(!_0x1775d6[_0x4c16('0x40')]['UserId'])return;return db['User'][_0x4c16('0x3e')]({'where':{'id':_0x1775d6[_0x4c16('0x40')][_0x4c16('0x45')],'role':'agent'},'attributes':['id',_0x4c16('0x24'),_0x4c16('0x55'),_0x4c16('0x56'),_0x4c16('0x57')],'raw':!![]});}return null;})[_0x4c16('0x10')](function(_0x335030){if(!_0x335030)return null;_0x3ba8d4[_0x4c16('0x18')][_0x4c16('0x46')]=_0x335030;return _0x3ba8d4;})[_0x4c16('0x10')](function(_0x53e4e6){if(_0x53e4e6){_0x53e4e6[_0x4c16('0x18')]['interface']=util[_0x4c16('0x58')]('SIP/%s',_0x1775d6['user'][_0x4c16('0x24')]);_0x53e4e6[_0x4c16('0x18')][_0x4c16('0x59')]=_0x3ba8d4[_0x4c16('0x59')];_0x53e4e6[_0x4c16('0x18')]['motionChannel']=_0x3ba8d4[_0x4c16('0x59')];_0x53e4e6[_0x4c16('0x18')][_0x4c16('0x5a')]=_0x4c16('0x44');respondWithRpcPromise(_0x4c16('0x5b'),_0x4c16('0x5b'),{'event':_0x4c16('0x5c'),'message':_0x53e4e6['message']},client9002);return _0x3ba8d4;}return null;})[_0x4c16('0x10')](respondWithResult(_0x3b7590,null))[_0x4c16('0x3b')](handleError(_0x3b7590,null));};exports[_0x4c16('0x1a')]=function(_0x340379,_0x439664){if(_0x340379['body']['id']){delete _0x340379[_0x4c16('0x40')]['id'];}var _0x1ac220;return db[_0x4c16('0x27')][_0x4c16('0x3e')]({'where':{'id':_0x340379['params']['id']}})['then'](handleEntityNotFound(_0x439664,null))['then'](function(_0x2fc4af){if(_0x2fc4af){_0x1ac220=_0x2fc4af;return db[_0x4c16('0x5d')]['find']({'where':{'id':_0x2fc4af[_0x4c16('0x5e')]}});}})[_0x4c16('0x10')](handleEntityNotFound(_0x439664,null))[_0x4c16('0x10')](function(_0x48c8cd){if(_0x48c8cd){logger[_0x4c16('0x14')]('SmsMessage,\x20%s,\x20%s,\x20%s',_0x4c16('0x1a'),_0x4c16('0x5f'),_0x48c8cd[_0x4c16('0x2a')],util['inspect'](_0x340379[_0x4c16('0x40')],{'showHidden':![],'depth':null}));switch(_0x48c8cd['type']){case _0x4c16('0x60'):if(_0x340379[_0x4c16('0x40')][_0x4c16('0x61')]&&_0x340379[_0x4c16('0x40')][_0x4c16('0x61')]===_0x1ac220[_0x4c16('0x62')]){return _0x1ac220[_0x4c16('0x63')]({'read':!![]});}else{logger[_0x4c16('0x17')]('SmsAccount,\x20%s,\x20%s,\x20%s',_0x4c16('0x1a'),_0x4c16('0x60'),util[_0x4c16('0x64')](_0x340379[_0x4c16('0x40')],{'showHidden':![],'depth':null}));}break;case _0x4c16('0x65'):if(_0x340379[_0x4c16('0x40')]['MessageUUID']&&_0x340379['body'][_0x4c16('0x66')]===_0x1ac220[_0x4c16('0x62')]&&_[_0x4c16('0x67')]([_0x4c16('0x68'),_0x4c16('0x69')],_0x340379[_0x4c16('0x40')][_0x4c16('0x6a')])>=0x0){return _0x1ac220[_0x4c16('0x63')]({'read':!![]});}else{logger[_0x4c16('0x17')](_0x4c16('0x6b'),_0x4c16('0x1a'),_0x4c16('0x6c'),util[_0x4c16('0x64')](_0x340379[_0x4c16('0x40')],{'showHidden':![],'depth':null}));}break;case _0x4c16('0x6d'):var _0x3858c5=_0x340379['body']['results'][0x0];if(_0x3858c5[_0x4c16('0x1a')][_0x4c16('0x6e')]===_0x4c16('0x6f')){return _0x1ac220[_0x4c16('0x63')]({'read':!![]});}else{logger[_0x4c16('0x17')](_0x4c16('0x6b'),'status',_0x4c16('0x6d'),util[_0x4c16('0x64')](_0x340379[_0x4c16('0x40')],{'showHidden':![],'depth':null}));}break;}return _0x1ac220;}})[_0x4c16('0x10')](respondWithResult(_0x439664,null))[_0x4c16('0x3b')](handleError(_0x439664,null));};