Built motion from commit b0a9a629.|2.6.33
[motion2.git] / server / api / chatMessage / chatMessage.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 _0xa6d4=['findAll','rows','show','params','find','create','body','describe','accept','chat','reject','UserId','user','agent','get','ChatInteraction','ChatInteractionId','interaction','[CHATMESSAGE:REJECT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','role','null','RejectMessage','rejectMessage','ContactId','sequelize','Sequelize','QueryTypes','SELECT','contact','User','fullname','internal','interface','format','SIP/%s','channel','motionChannel','EventManager','rejectmessage','parse','formData','util','lodash','ioredis','../../components/interaction/service','../../components/parsers/qs','../../config/logger','../../mysqldb','redis','defaults','localhost','socket.io-emitter','./chatMessage.socket','register','client','http','chat-interactions','request','then','info','ChatMessage,\x20%s,\x20%s','debug','stringify','error','code','message','result','catch','status','json','undefined','count','offset','limit','set','Content-Range','update','destroy','end','sendStatus','stack','name','send','map','ChatMessage','rawAttributes','fieldName','key','model','keys','query','filters','intersection','fields','attributes','length','hasOwnProperty','order','sort','where','pick','filter','merge','type','VIRTUAL','options','includeAll','include'];(function(_0x575a31,_0x56336f){var _0x5d7dad=function(_0x2c8c09){while(--_0x2c8c09){_0x575a31['push'](_0x575a31['shift']());}};_0x5d7dad(++_0x56336f);}(_0xa6d4,0x101));var _0x4a6d=function(_0x26eba8,_0x3e5db7){_0x26eba8=_0x26eba8-0x0;var _0x19fa6e=_0xa6d4[_0x26eba8];return _0x19fa6e;};'use strict';var util=require(_0x4a6d('0x0'));var _=require(_0x4a6d('0x1'));var Redis=require(_0x4a6d('0x2'));var interactionService=require(_0x4a6d('0x3'));var qs=require(_0x4a6d('0x4'));var logger=require(_0x4a6d('0x5'))('api');var config=require('../../config/environment');var db=require(_0x4a6d('0x6'))['db'];config[_0x4a6d('0x7')]=_[_0x4a6d('0x8')](config[_0x4a6d('0x7')],{'host':_0x4a6d('0x9'),'port':0x18eb});var socket=require(_0x4a6d('0xa'))(new Redis(config[_0x4a6d('0x7')]));require(_0x4a6d('0xb'))[_0x4a6d('0xc')](socket);var jayson=require('jayson/promise');var client=jayson[_0x4a6d('0xd')]['http']({'port':0x232c});var client9002=jayson[_0x4a6d('0xd')][_0x4a6d('0xe')]({'port':0x232a});var interaction_log=require(_0x4a6d('0x5'))(_0x4a6d('0xf'));function respondWithRpcPromise(_0x2f0d9f,_0x5b5edf,_0x3b7aef,_0x358671){return new Promise(function(_0x560c85,_0x4c1a8e){var _0x5a04a4=_0x358671||client;return _0x5a04a4[_0x4a6d('0x10')](_0x2f0d9f,_0x3b7aef)[_0x4a6d('0x11')](function(_0x498876){logger[_0x4a6d('0x12')](_0x4a6d('0x13'),_0x5b5edf,'request\x20sent');logger[_0x4a6d('0x14')]('ChatMessage,\x20%s,\x20%s,\x20%s',_0x5b5edf,'request\x20sent',JSON[_0x4a6d('0x15')](_0x498876));if(_0x498876[_0x4a6d('0x16')]){if(_0x498876[_0x4a6d('0x16')][_0x4a6d('0x17')]===0x1f4){logger['error']('ChatMessage,\x20%s,\x20%s',_0x5b5edf,_0x498876[_0x4a6d('0x16')][_0x4a6d('0x18')]);return _0x4c1a8e(_0x498876['error'][_0x4a6d('0x18')]);}logger['error']('ChatMessage,\x20%s,\x20%s',_0x5b5edf,_0x498876[_0x4a6d('0x16')][_0x4a6d('0x18')]);return _0x560c85(_0x498876[_0x4a6d('0x16')][_0x4a6d('0x18')]);}else{logger[_0x4a6d('0x12')](_0x4a6d('0x13'),_0x5b5edf,'request\x20sent');_0x560c85(_0x498876[_0x4a6d('0x19')][_0x4a6d('0x18')]);}})[_0x4a6d('0x1a')](function(_0x34bc7d){logger[_0x4a6d('0x16')](_0x4a6d('0x13'),_0x5b5edf,_0x34bc7d);_0x4c1a8e(_0x34bc7d);});});}function respondWithResult(_0x39edf5,_0xebec82){_0xebec82=_0xebec82||0xc8;return function(_0x3537ff){if(_0x3537ff){return _0x39edf5[_0x4a6d('0x1b')](_0xebec82)[_0x4a6d('0x1c')](_0x3537ff);}};}function respondWithFilteredResult(_0x3afe1e,_0xcef94){return function(_0x23b8af){if(_0x23b8af){var _0x264bc5=typeof _0xcef94['offset']===_0x4a6d('0x1d')&&typeof _0xcef94['limit']==='undefined';var _0x35e132=_0x23b8af[_0x4a6d('0x1e')];var _0x3c8f66=_0x264bc5?0x0:_0xcef94[_0x4a6d('0x1f')];var _0x38d9bd=_0x264bc5?_0x23b8af[_0x4a6d('0x1e')]:_0xcef94['offset']+_0xcef94[_0x4a6d('0x20')];var _0x4f29cc;if(_0x38d9bd>=_0x35e132){_0x38d9bd=_0x35e132;_0x4f29cc=0xc8;}else{_0x4f29cc=0xce;}_0x3afe1e[_0x4a6d('0x1b')](_0x4f29cc);return _0x3afe1e[_0x4a6d('0x21')](_0x4a6d('0x22'),_0x3c8f66+'-'+_0x38d9bd+'/'+_0x35e132)[_0x4a6d('0x1c')](_0x23b8af);}return null;};}function saveUpdates(_0x3a6b6c){return function(_0x5bb6da){if(_0x5bb6da){return _0x5bb6da[_0x4a6d('0x23')](_0x3a6b6c)[_0x4a6d('0x11')](function(_0x254b92){return _0x254b92;});}return null;};}function removeEntity(_0x24abb4){return function(_0x4ea11e){if(_0x4ea11e){return _0x4ea11e[_0x4a6d('0x24')]()[_0x4a6d('0x11')](function(){_0x24abb4['status'](0xcc)[_0x4a6d('0x25')]();});}};}function handleEntityNotFound(_0x2a65e1){return function(_0x51fdeb){if(!_0x51fdeb){_0x2a65e1[_0x4a6d('0x26')](0x194);}return _0x51fdeb;};}function handleError(_0x462225,_0xaeaa7c){_0xaeaa7c=_0xaeaa7c||0x1f4;return function(_0x2e6fdc){logger[_0x4a6d('0x16')](_0x2e6fdc[_0x4a6d('0x27')]);if(_0x2e6fdc[_0x4a6d('0x28')]){delete _0x2e6fdc[_0x4a6d('0x28')];}_0x462225[_0x4a6d('0x1b')](_0xaeaa7c)[_0x4a6d('0x29')](_0x2e6fdc);};}exports['index']=function(_0x4d0740,_0x671273){var _0x5edef6={},_0x73ff6e={},_0x16f52f={'count':0x0,'rows':[]};var _0x308a3a=_[_0x4a6d('0x2a')](db[_0x4a6d('0x2b')][_0x4a6d('0x2c')],function(_0x23c76f){return{'name':_0x23c76f[_0x4a6d('0x2d')],'type':_0x23c76f['type'][_0x4a6d('0x2e')]};});_0x73ff6e[_0x4a6d('0x2f')]=_[_0x4a6d('0x2a')](_0x308a3a,_0x4a6d('0x28'));_0x73ff6e['query']=_[_0x4a6d('0x30')](_0x4d0740[_0x4a6d('0x31')]);_0x73ff6e[_0x4a6d('0x32')]=_[_0x4a6d('0x33')](_0x73ff6e['model'],_0x73ff6e[_0x4a6d('0x31')]);_0x5edef6['attributes']=_[_0x4a6d('0x33')](_0x73ff6e[_0x4a6d('0x2f')],qs[_0x4a6d('0x34')](_0x4d0740[_0x4a6d('0x31')][_0x4a6d('0x34')]));_0x5edef6[_0x4a6d('0x35')]=_0x5edef6[_0x4a6d('0x35')][_0x4a6d('0x36')]?_0x5edef6[_0x4a6d('0x35')]:_0x73ff6e[_0x4a6d('0x2f')];if(!_0x4d0740[_0x4a6d('0x31')][_0x4a6d('0x37')]('nolimit')){_0x5edef6['limit']=qs['limit'](_0x4d0740[_0x4a6d('0x31')][_0x4a6d('0x20')]);_0x5edef6['offset']=qs[_0x4a6d('0x1f')](_0x4d0740['query'][_0x4a6d('0x1f')]);}_0x5edef6[_0x4a6d('0x38')]=qs[_0x4a6d('0x39')](_0x4d0740[_0x4a6d('0x31')][_0x4a6d('0x39')]);_0x5edef6[_0x4a6d('0x3a')]=qs[_0x4a6d('0x32')](_[_0x4a6d('0x3b')](_0x4d0740[_0x4a6d('0x31')],_0x73ff6e[_0x4a6d('0x32')]),_0x308a3a);if(_0x4d0740[_0x4a6d('0x31')][_0x4a6d('0x3c')]){_0x5edef6[_0x4a6d('0x3a')]=_[_0x4a6d('0x3d')](_0x5edef6[_0x4a6d('0x3a')],{'$or':_[_0x4a6d('0x2a')](_0x308a3a,function(_0x4b4656){if(_0x4b4656[_0x4a6d('0x3e')]!==_0x4a6d('0x3f')){var _0x3cde5e={};_0x3cde5e[_0x4b4656[_0x4a6d('0x28')]]={'$like':'%'+_0x4d0740[_0x4a6d('0x31')][_0x4a6d('0x3c')]+'%'};return _0x3cde5e;}})});}_0x5edef6=_['merge']({},_0x5edef6,_0x4d0740[_0x4a6d('0x40')]);var _0x547827={'where':_0x5edef6[_0x4a6d('0x3a')]};return db['ChatMessage'][_0x4a6d('0x1e')](_0x547827)[_0x4a6d('0x11')](function(_0x53d100){_0x16f52f[_0x4a6d('0x1e')]=_0x53d100;if(_0x4d0740[_0x4a6d('0x31')][_0x4a6d('0x41')]){_0x5edef6[_0x4a6d('0x42')]=[{'all':!![]}];}return db[_0x4a6d('0x2b')][_0x4a6d('0x43')](_0x5edef6);})[_0x4a6d('0x11')](function(_0x4d6ba4){_0x16f52f[_0x4a6d('0x44')]=_0x4d6ba4;return _0x16f52f;})[_0x4a6d('0x11')](respondWithFilteredResult(_0x671273,_0x5edef6))[_0x4a6d('0x1a')](handleError(_0x671273,null));};exports[_0x4a6d('0x45')]=function(_0x133d7f,_0x274c10){var _0x5a3e58={'raw':!![],'where':{'id':_0x133d7f[_0x4a6d('0x46')]['id']}},_0x5bf88a={};_0x5bf88a[_0x4a6d('0x2f')]=_['keys'](db[_0x4a6d('0x2b')][_0x4a6d('0x2c')]);_0x5bf88a[_0x4a6d('0x31')]=_[_0x4a6d('0x30')](_0x133d7f[_0x4a6d('0x31')]);_0x5bf88a[_0x4a6d('0x32')]=_[_0x4a6d('0x33')](_0x5bf88a[_0x4a6d('0x2f')],_0x5bf88a[_0x4a6d('0x31')]);_0x5a3e58[_0x4a6d('0x35')]=_[_0x4a6d('0x33')](_0x5bf88a[_0x4a6d('0x2f')],qs[_0x4a6d('0x34')](_0x133d7f[_0x4a6d('0x31')][_0x4a6d('0x34')]));_0x5a3e58[_0x4a6d('0x35')]=_0x5a3e58[_0x4a6d('0x35')]['length']?_0x5a3e58['attributes']:_0x5bf88a['model'];if(_0x133d7f[_0x4a6d('0x31')][_0x4a6d('0x41')]){_0x5a3e58['include']=[{'all':!![]}];}_0x5a3e58=_[_0x4a6d('0x3d')]({},_0x5a3e58,_0x133d7f[_0x4a6d('0x40')]);return db[_0x4a6d('0x2b')][_0x4a6d('0x47')](_0x5a3e58)[_0x4a6d('0x11')](handleEntityNotFound(_0x274c10,null))['then'](respondWithResult(_0x274c10,null))[_0x4a6d('0x1a')](handleError(_0x274c10,null));};exports[_0x4a6d('0x48')]=function(_0x13a6c2,_0x4eeecd){return db[_0x4a6d('0x2b')][_0x4a6d('0x48')](_0x13a6c2['body'],{})[_0x4a6d('0x11')](respondWithResult(_0x4eeecd,0xc9))[_0x4a6d('0x1a')](handleError(_0x4eeecd,null));};exports[_0x4a6d('0x23')]=function(_0x3a2098,_0x3de169){if(_0x3a2098[_0x4a6d('0x49')]['id']){delete _0x3a2098['body']['id'];}return db['ChatMessage'][_0x4a6d('0x47')]({'where':{'id':_0x3a2098[_0x4a6d('0x46')]['id']}})['then'](handleEntityNotFound(_0x3de169,null))['then'](saveUpdates(_0x3a2098['body'],null))[_0x4a6d('0x11')](respondWithResult(_0x3de169,null))[_0x4a6d('0x1a')](handleError(_0x3de169,null));};exports[_0x4a6d('0x24')]=function(_0x63af58,_0xc3f141){return db[_0x4a6d('0x2b')][_0x4a6d('0x47')]({'where':{'id':_0x63af58[_0x4a6d('0x46')]['id']}})[_0x4a6d('0x11')](handleEntityNotFound(_0xc3f141,null))[_0x4a6d('0x11')](removeEntity(_0xc3f141,null))[_0x4a6d('0x1a')](handleError(_0xc3f141,null));};exports[_0x4a6d('0x4a')]=function(_0x258179,_0x3b5d51){return db[_0x4a6d('0x2b')][_0x4a6d('0x4a')]()['then'](respondWithResult(_0x3b5d51,null))[_0x4a6d('0x1a')](handleError(_0x3b5d51,null));};exports[_0x4a6d('0x4b')]=function(_0x53060a,_0x1a5854){var _0x1cbc62=_0x4a6d('0x4c');return interactionService['acceptMessage'](_0x53060a,_0x1cbc62)['then'](respondWithResult(_0x1a5854,null))[_0x4a6d('0x1a')](handleError(_0x1a5854,null));};exports[_0x4a6d('0x4d')]=function(_0xfb9e39,_0x347b7b){var _0x2e45c9={'agent':{},'channel':_0x4a6d('0x4c')};if(_0xfb9e39[_0x4a6d('0x49')]['id']){delete _0xfb9e39[_0x4a6d('0x49')]['id'];}_0xfb9e39[_0x4a6d('0x49')][_0x4a6d('0x4e')]=_0xfb9e39[_0x4a6d('0x49')][_0x4a6d('0x4e')]||_0xfb9e39[_0x4a6d('0x4f')]['id'];_0x2e45c9[_0x4a6d('0x50')]['id']=_0xfb9e39['body'][_0x4a6d('0x4e')];return db['ChatMessage'][_0x4a6d('0x47')]({'where':{'id':_0xfb9e39[_0x4a6d('0x46')]['id'],'UserId':null}})['then'](handleEntityNotFound(_0x347b7b,null))[_0x4a6d('0x11')](function(_0x43d6cd){if(_0x43d6cd){_0x2e45c9[_0x4a6d('0x18')]=_0x43d6cd[_0x4a6d('0x51')]({'plain':!![]});return db[_0x4a6d('0x52')][_0x4a6d('0x47')]({'where':{'id':_0x43d6cd[_0x4a6d('0x53')]}});}return null;})[_0x4a6d('0x11')](handleEntityNotFound(_0x347b7b,null))['then'](function(_0x1c1444){if(_0x1c1444){_0x2e45c9[_0x4a6d('0x54')]=_0x1c1444[_0x4a6d('0x51')]({'plain':!![]});interaction_log[_0x4a6d('0x12')](_0x4a6d('0x55'),_0xfb9e39['user']['id'],_0xfb9e39[_0x4a6d('0x4f')]['name'],_0xfb9e39[_0x4a6d('0x4f')][_0x4a6d('0x56')],_0x2e45c9[_0x4a6d('0x54')]['id'],_0xfb9e39[_0x4a6d('0x49')]?JSON['stringify'](_0xfb9e39['body']):_0x4a6d('0x57'));return respondWithRpcPromise(_0x4a6d('0x58'),_0x4a6d('0x59'),_0x2e45c9);}return null;})[_0x4a6d('0x11')](function(_0x2ca1b9){var _0x4ad7ce='SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20'+_0x2ca1b9['message'][_0x4a6d('0x5a')];return db[_0x4a6d('0x5b')][_0x4a6d('0x31')](_0x4ad7ce,{'type':db[_0x4a6d('0x5c')][_0x4a6d('0x5d')][_0x4a6d('0x5e')],'raw':!![]})[_0x4a6d('0x11')](function(_0x4012c0){return _0x4012c0;});})[_0x4a6d('0x11')](function(_0x32980e){if(_0x32980e){_0x2e45c9[_0x4a6d('0x18')][_0x4a6d('0x5f')]=_0x32980e[0x0];if(!_0xfb9e39[_0x4a6d('0x49')][_0x4a6d('0x4e')])return;return db[_0x4a6d('0x60')]['find']({'where':{'id':_0xfb9e39[_0x4a6d('0x49')][_0x4a6d('0x4e')],'role':_0x4a6d('0x50')},'attributes':['id',_0x4a6d('0x28'),_0x4a6d('0x61'),'email',_0x4a6d('0x62')],'raw':!![]});}return null;})[_0x4a6d('0x11')](function(_0x236bc4){if(!_0x236bc4)return null;_0x2e45c9[_0x4a6d('0x18')][_0x4a6d('0x50')]=_0x236bc4;return _0x2e45c9;})[_0x4a6d('0x11')](function(_0x476cfe){if(_0x476cfe){_0x476cfe[_0x4a6d('0x18')][_0x4a6d('0x63')]=util[_0x4a6d('0x64')](_0x4a6d('0x65'),_0xfb9e39['user'][_0x4a6d('0x28')]);_0x476cfe[_0x4a6d('0x18')][_0x4a6d('0x66')]=_0x2e45c9[_0x4a6d('0x66')];_0x476cfe[_0x4a6d('0x18')][_0x4a6d('0x67')]=_0x2e45c9['channel'];_0x476cfe[_0x4a6d('0x18')]['event']='reject';respondWithRpcPromise(_0x4a6d('0x68'),_0x4a6d('0x68'),{'event':_0x4a6d('0x69'),'message':_[_0x4a6d('0x3d')](_0x2e45c9[_0x4a6d('0x18')],JSON[_0x4a6d('0x6a')](_0x2e45c9['interaction'][_0x4a6d('0x6b')]))},client9002);return _0x2e45c9;}return null;})['then'](respondWithResult(_0x347b7b,null))[_0x4a6d('0x1a')](handleError(_0x347b7b,null));};