Built motion from commit (unavailable).|2.5.7
[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 _0x1a4e=['request-promise','bluebird','mustache','path','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','querystring','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/license/util','../../mysqldb','redis','defaults','localhost','socket.io-emitter','./chatMessage.socket','jayson/promise','client','http','request','ChatMessage,\x20%s,\x20%s','request\x20sent','debug','ChatMessage,\x20%s,\x20%s,\x20%s','stringify','code','error','message','info','catch','sendStatus','status','end','json','count','offset','limit','Content-Range','apply','reject','save','update','then','destroy','name','send','map','ChatMessage','rawAttributes','fieldName','type','key','query','filters','intersection','model','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','includeAll','findAll','rows','show','params','keys','options','find','body','describe','chat-interactions','accept','chat','readAt','YYYY-MM-DD\x20HH:mm:ss','UserId','user','Contact','ChatInteraction','ChatInteractionId','isNil','read1stAt','format','interaction','get','[CHATMESSAGE:ACCEPT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','role','null','AcceptMessage','acceptMessage','manual','channel','event','EventManager','acceptmessage','parse','formData','RejectMessage','rejectMessage','interface','SIP/%s','rejectmessage','html-pdf','zip-dir','fast-json-patch'];(function(_0x1ba29c,_0x5833e0){var _0x5d3243=function(_0x583b24){while(--_0x583b24){_0x1ba29c['push'](_0x1ba29c['shift']());}};_0x5d3243(++_0x5833e0);}(_0x1a4e,0x1e5));var _0xe1a4=function(_0x5e6cb8,_0x16cf56){_0x5e6cb8=_0x5e6cb8-0x0;var _0x3faeb3=_0x1a4e[_0x5e6cb8];return _0x3faeb3;};'use strict';var pdf=require(_0xe1a4('0x0'));var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0xe1a4('0x1'));var jsonpatch=require(_0xe1a4('0x2'));var rp=require(_0xe1a4('0x3'));var moment=require('moment');var BPromise=require(_0xe1a4('0x4'));var Mustache=require(_0xe1a4('0x5'));var util=require('util');var path=require(_0xe1a4('0x6'));var sox=require('sox');var csv=require(_0xe1a4('0x7'));var ejs=require(_0xe1a4('0x8'));var fs=require('fs');var _=require(_0xe1a4('0x9'));var squel=require(_0xe1a4('0xa'));var crypto=require(_0xe1a4('0xb'));var jsforce=require(_0xe1a4('0xc'));var deskjs=require(_0xe1a4('0xd'));var toCsv=require('to-csv');var querystring=require(_0xe1a4('0xe'));var Papa=require('papaparse');var Redis=require(_0xe1a4('0xf'));var authService=require('../../components/auth/service');var qs=require(_0xe1a4('0x10'));var as=require(_0xe1a4('0x11'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xe1a4('0x12'))(_0xe1a4('0x13'));var utils=require(_0xe1a4('0x14'));var config=require('../../config/environment');var licenseUtil=require(_0xe1a4('0x15'));var db=require(_0xe1a4('0x16'))['db'];config[_0xe1a4('0x17')]=_[_0xe1a4('0x18')](config[_0xe1a4('0x17')],{'host':_0xe1a4('0x19'),'port':0x18eb});var socket=require(_0xe1a4('0x1a'))(new Redis(config[_0xe1a4('0x17')]));require(_0xe1a4('0x1b'))['register'](socket);var jayson=require(_0xe1a4('0x1c'));var client=jayson[_0xe1a4('0x1d')]['http']({'port':0x232c});var client9002=jayson[_0xe1a4('0x1d')][_0xe1a4('0x1e')]({'port':0x232a});function respondWithRpcPromise(_0x43f10a,_0x29bf14,_0x4373ad,_0xb69432){return new BPromise(function(_0x580342,_0x4bd36c){var _0x218fff=_0xb69432||client;return _0x218fff[_0xe1a4('0x1f')](_0x43f10a,_0x4373ad)['then'](function(_0x330533){logger['info'](_0xe1a4('0x20'),_0x29bf14,_0xe1a4('0x21'));logger[_0xe1a4('0x22')](_0xe1a4('0x23'),_0x29bf14,_0xe1a4('0x21'),JSON[_0xe1a4('0x24')](_0x330533));if(_0x330533['error']){if(_0x330533['error'][_0xe1a4('0x25')]===0x1f4){logger[_0xe1a4('0x26')]('ChatMessage,\x20%s,\x20%s',_0x29bf14,_0x330533[_0xe1a4('0x26')][_0xe1a4('0x27')]);return _0x4bd36c(_0x330533[_0xe1a4('0x26')][_0xe1a4('0x27')]);}logger[_0xe1a4('0x26')]('ChatMessage,\x20%s,\x20%s',_0x29bf14,_0x330533[_0xe1a4('0x26')][_0xe1a4('0x27')]);return _0x580342(_0x330533[_0xe1a4('0x26')][_0xe1a4('0x27')]);}else{logger[_0xe1a4('0x28')](_0xe1a4('0x20'),_0x29bf14,_0xe1a4('0x21'));_0x580342(_0x330533['result'][_0xe1a4('0x27')]);}})[_0xe1a4('0x29')](function(_0x140115){logger[_0xe1a4('0x26')](_0xe1a4('0x20'),_0x29bf14,_0x140115);_0x4bd36c(_0x140115);});});}function respondWithStatusCode(_0x41082c,_0x494ba2){_0x494ba2=_0x494ba2||0xcc;return function(_0xf9b7fd){if(_0xf9b7fd){return _0x41082c[_0xe1a4('0x2a')](_0x494ba2);}return _0x41082c[_0xe1a4('0x2b')](_0x494ba2)[_0xe1a4('0x2c')]();};}function respondWithResult(_0x4f2787,_0x128fa9){_0x128fa9=_0x128fa9||0xc8;return function(_0x5ac33b){if(_0x5ac33b){return _0x4f2787[_0xe1a4('0x2b')](_0x128fa9)[_0xe1a4('0x2d')](_0x5ac33b);}};}function respondWithFilteredResult(_0x191800,_0x1a6ea9){return function(_0x477417){if(_0x477417){var _0x2fee88=_0x477417[_0xe1a4('0x2e')],_0x5af58b=_0x1a6ea9[_0xe1a4('0x2f')],_0x36bd98=_0x1a6ea9[_0xe1a4('0x2f')]+_0x1a6ea9[_0xe1a4('0x30')],_0xca6b82;if(_0x36bd98>=_0x2fee88){_0x36bd98=_0x2fee88;_0xca6b82=0xc8;}else{_0xca6b82=0xce;}_0x191800[_0xe1a4('0x2b')](_0xca6b82);return _0x191800['set'](_0xe1a4('0x31'),_0x5af58b+'-'+_0x36bd98+'/'+_0x2fee88)[_0xe1a4('0x2d')](_0x477417);}return null;};}function patchUpdates(_0x4ffb51){return function(_0x2b6911){try{jsonpatch[_0xe1a4('0x32')](_0x2b6911,_0x4ffb51,!![]);}catch(_0x686a6c){return BPromise[_0xe1a4('0x33')](_0x686a6c);}return _0x2b6911[_0xe1a4('0x34')]();};}function saveUpdates(_0x26121b,_0x472846){return function(_0x293918){if(_0x293918){return _0x293918[_0xe1a4('0x35')](_0x26121b)[_0xe1a4('0x36')](function(_0x150001){return _0x150001;});}return null;};}function removeEntity(_0x47f59a,_0x3d0d5e){return function(_0x715970){if(_0x715970){return _0x715970[_0xe1a4('0x37')]()[_0xe1a4('0x36')](function(){_0x47f59a[_0xe1a4('0x2b')](0xcc)[_0xe1a4('0x2c')]();});}};}function handleEntityNotFound(_0x24da99,_0x4c8c9c){return function(_0x3fb552){if(!_0x3fb552){_0x24da99[_0xe1a4('0x2a')](0x194);}return _0x3fb552;};}function handleError(_0x3b20bb,_0x35f54e){_0x35f54e=_0x35f54e||0x1f4;return function(_0xefdd0d){logger[_0xe1a4('0x26')](_0xefdd0d['stack']);if(_0xefdd0d[_0xe1a4('0x38')]){delete _0xefdd0d['name'];}_0x3b20bb['status'](_0x35f54e)[_0xe1a4('0x39')](_0xefdd0d);};}exports['index']=function(_0xe2b048,_0x34c154){var _0x67db6c={},_0x27e6af={},_0x101f46={'count':0x0,'rows':[]};var _0x2dd1e7=_[_0xe1a4('0x3a')](db[_0xe1a4('0x3b')][_0xe1a4('0x3c')],function(_0x21700d){return{'name':_0x21700d[_0xe1a4('0x3d')],'type':_0x21700d[_0xe1a4('0x3e')][_0xe1a4('0x3f')]};});_0x27e6af['model']=_[_0xe1a4('0x3a')](_0x2dd1e7,'name');_0x27e6af[_0xe1a4('0x40')]=_['keys'](_0xe2b048[_0xe1a4('0x40')]);_0x27e6af[_0xe1a4('0x41')]=_[_0xe1a4('0x42')](_0x27e6af[_0xe1a4('0x43')],_0x27e6af[_0xe1a4('0x40')]);_0x67db6c[_0xe1a4('0x44')]=_[_0xe1a4('0x42')](_0x27e6af[_0xe1a4('0x43')],qs[_0xe1a4('0x45')](_0xe2b048[_0xe1a4('0x40')][_0xe1a4('0x45')]));_0x67db6c[_0xe1a4('0x44')]=_0x67db6c[_0xe1a4('0x44')][_0xe1a4('0x46')]?_0x67db6c['attributes']:_0x27e6af['model'];if(!_0xe2b048['query'][_0xe1a4('0x47')](_0xe1a4('0x48'))){_0x67db6c['limit']=qs[_0xe1a4('0x30')](_0xe2b048['query']['limit']);_0x67db6c[_0xe1a4('0x2f')]=qs[_0xe1a4('0x2f')](_0xe2b048[_0xe1a4('0x40')][_0xe1a4('0x2f')]);}_0x67db6c[_0xe1a4('0x49')]=qs['sort'](_0xe2b048['query'][_0xe1a4('0x4a')]);_0x67db6c[_0xe1a4('0x4b')]=qs[_0xe1a4('0x41')](_[_0xe1a4('0x4c')](_0xe2b048[_0xe1a4('0x40')],_0x27e6af[_0xe1a4('0x41')]),_0x2dd1e7);if(_0xe2b048[_0xe1a4('0x40')][_0xe1a4('0x4d')]){_0x67db6c[_0xe1a4('0x4b')]=_[_0xe1a4('0x4e')](_0x67db6c[_0xe1a4('0x4b')],{'$or':_['map'](_0x2dd1e7,function(_0x1eacb8){if(_0x1eacb8[_0xe1a4('0x3e')]!==_0xe1a4('0x4f')){var _0x5523e1={};_0x5523e1[_0x1eacb8['name']]={'$like':'%'+_0xe2b048[_0xe1a4('0x40')][_0xe1a4('0x4d')]+'%'};return _0x5523e1;}})});}_0x67db6c=_['merge']({},_0x67db6c,_0xe2b048['options']);var _0xb321fa={'where':_0x67db6c[_0xe1a4('0x4b')]};return db[_0xe1a4('0x3b')][_0xe1a4('0x2e')](_0xb321fa)['then'](function(_0x547d8e){_0x101f46['count']=_0x547d8e;if(_0xe2b048[_0xe1a4('0x40')][_0xe1a4('0x50')]){_0x67db6c['include']=[{'all':!![]}];}return db['ChatMessage'][_0xe1a4('0x51')](_0x67db6c);})['then'](function(_0x351b54){_0x101f46[_0xe1a4('0x52')]=_0x351b54;return _0x101f46;})[_0xe1a4('0x36')](respondWithFilteredResult(_0x34c154,_0x67db6c))[_0xe1a4('0x29')](handleError(_0x34c154,null));};exports[_0xe1a4('0x53')]=function(_0x3e0888,_0x50378a){var _0x44a1ff={'raw':!![],'where':{'id':_0x3e0888[_0xe1a4('0x54')]['id']}},_0x6268a2={};_0x6268a2[_0xe1a4('0x43')]=_[_0xe1a4('0x55')](db[_0xe1a4('0x3b')][_0xe1a4('0x3c')]);_0x6268a2['query']=_[_0xe1a4('0x55')](_0x3e0888[_0xe1a4('0x40')]);_0x6268a2[_0xe1a4('0x41')]=_[_0xe1a4('0x42')](_0x6268a2[_0xe1a4('0x43')],_0x6268a2[_0xe1a4('0x40')]);_0x44a1ff[_0xe1a4('0x44')]=_[_0xe1a4('0x42')](_0x6268a2[_0xe1a4('0x43')],qs[_0xe1a4('0x45')](_0x3e0888[_0xe1a4('0x40')][_0xe1a4('0x45')]));_0x44a1ff[_0xe1a4('0x44')]=_0x44a1ff[_0xe1a4('0x44')]['length']?_0x44a1ff[_0xe1a4('0x44')]:_0x6268a2[_0xe1a4('0x43')];if(_0x3e0888['query'][_0xe1a4('0x50')]){_0x44a1ff['include']=[{'all':!![]}];}_0x44a1ff=_[_0xe1a4('0x4e')]({},_0x44a1ff,_0x3e0888[_0xe1a4('0x56')]);return db[_0xe1a4('0x3b')][_0xe1a4('0x57')](_0x44a1ff)[_0xe1a4('0x36')](handleEntityNotFound(_0x50378a,null))[_0xe1a4('0x36')](respondWithResult(_0x50378a,null))[_0xe1a4('0x29')](handleError(_0x50378a,null));};exports['create']=function(_0x22c554,_0x1668ac){return db[_0xe1a4('0x3b')]['create'](_0x22c554['body'],{})['then'](respondWithResult(_0x1668ac,0xc9))[_0xe1a4('0x29')](handleError(_0x1668ac,null));};exports[_0xe1a4('0x35')]=function(_0x102cdc,_0x2937da){if(_0x102cdc[_0xe1a4('0x58')]['id']){delete _0x102cdc[_0xe1a4('0x58')]['id'];}return db[_0xe1a4('0x3b')]['find']({'where':{'id':_0x102cdc[_0xe1a4('0x54')]['id']}})[_0xe1a4('0x36')](handleEntityNotFound(_0x2937da,null))[_0xe1a4('0x36')](saveUpdates(_0x102cdc[_0xe1a4('0x58')],null))[_0xe1a4('0x36')](respondWithResult(_0x2937da,null))['catch'](handleError(_0x2937da,null));};exports[_0xe1a4('0x37')]=function(_0x5517e5,_0x59322b){return db[_0xe1a4('0x3b')]['find']({'where':{'id':_0x5517e5[_0xe1a4('0x54')]['id']}})[_0xe1a4('0x36')](handleEntityNotFound(_0x59322b,null))[_0xe1a4('0x36')](removeEntity(_0x59322b,null))[_0xe1a4('0x29')](handleError(_0x59322b,null));};exports['describe']=function(_0x495d7f,_0x4f5f06){return db[_0xe1a4('0x3b')][_0xe1a4('0x59')]()[_0xe1a4('0x36')](respondWithResult(_0x4f5f06,null))[_0xe1a4('0x29')](handleError(_0x4f5f06,null));};var interaction_log=require('../../config/logger')(_0xe1a4('0x5a'));exports[_0xe1a4('0x5b')]=function(_0x5ee767,_0x546a0f,_0x17c9b4){var _0x4deae5={'channel':_0xe1a4('0x5c')};if(_0x5ee767['body']['id']){delete _0x5ee767[_0xe1a4('0x58')]['id'];}_0x5ee767[_0xe1a4('0x58')]['read']=!![];_0x5ee767['body'][_0xe1a4('0x5d')]=moment()['format'](_0xe1a4('0x5e'));_0x5ee767[_0xe1a4('0x58')]['UserId']=_0x5ee767['body'][_0xe1a4('0x5f')]||_0x5ee767[_0xe1a4('0x60')]['id'];return db[_0xe1a4('0x3b')][_0xe1a4('0x57')]({'where':{'id':_0x5ee767[_0xe1a4('0x54')]['id'],'UserId':null},'include':[{'model':db['CmContact'],'as':_0xe1a4('0x61')}]})[_0xe1a4('0x36')](handleEntityNotFound(_0x546a0f,null))[_0xe1a4('0x36')](saveUpdates(_0x5ee767[_0xe1a4('0x58')],null))[_0xe1a4('0x36')](function(_0x2a3292){if(_0x2a3292){_0x4deae5[_0xe1a4('0x27')]=_0x2a3292['get']({'plain':!![]});return db[_0xe1a4('0x62')][_0xe1a4('0x57')]({'where':{'id':_0x2a3292[_0xe1a4('0x63')]}});}return null;})['then'](handleEntityNotFound(_0x546a0f,null))['then'](function(_0x3eeca9){if(_0x3eeca9){return _0x3eeca9[_0xe1a4('0x35')]({'UserId':_0x5ee767[_0xe1a4('0x58')][_0xe1a4('0x5f')],'read1stAt':_[_0xe1a4('0x64')](_0x3eeca9[_0xe1a4('0x65')])?moment()[_0xe1a4('0x66')]('YYYY-MM-DD\x20HH:mm:ss'):undefined});}return null;})[_0xe1a4('0x36')](function(_0x31dbb6){if(_0x31dbb6){_0x4deae5[_0xe1a4('0x67')]=_0x31dbb6[_0xe1a4('0x68')]({'plain':!![]});interaction_log[_0xe1a4('0x28')](_0xe1a4('0x69'),_0x5ee767[_0xe1a4('0x60')]['id'],_0x5ee767['user'][_0xe1a4('0x38')],_0x5ee767[_0xe1a4('0x60')][_0xe1a4('0x6a')],_0x4deae5['interaction']['id'],_0x5ee767['body']?JSON[_0xe1a4('0x24')](_0x5ee767['body']):_0xe1a4('0x6b'));return respondWithRpcPromise(_0xe1a4('0x6c'),_0xe1a4('0x6d'),_0x4deae5);}return null;})['then'](function(_0x554f5a){if(_0x554f5a){if(_0x5ee767['body'][_0xe1a4('0x6e')]){_0x4deae5[_0xe1a4('0x27')]['interface']=util[_0xe1a4('0x66')]('SIP/%s',_0x5ee767['user']['name']);_0x4deae5[_0xe1a4('0x27')][_0xe1a4('0x6f')]=_0x4deae5[_0xe1a4('0x6f')];_0x4deae5[_0xe1a4('0x27')][_0xe1a4('0x70')]=_0xe1a4('0x5b');return respondWithRpcPromise(_0xe1a4('0x71'),'EventManager',{'event':_0xe1a4('0x72'),'message':_[_0xe1a4('0x4e')](_0x4deae5[_0xe1a4('0x27')],JSON[_0xe1a4('0x73')](_0x4deae5['interaction'][_0xe1a4('0x74')]))},client9002)[_0xe1a4('0x36')](function(){return _0x4deae5;});}return _0x4deae5;}return null;})['then'](respondWithResult(_0x546a0f,null))[_0xe1a4('0x29')](handleError(_0x546a0f,null));};var interaction_log=require(_0xe1a4('0x12'))(_0xe1a4('0x5a'));exports['reject']=function(_0xfe62b4,_0x166286,_0x22af61){var _0x2b1677={'agent':{},'channel':'chat'};if(_0xfe62b4[_0xe1a4('0x58')]['id']){delete _0xfe62b4[_0xe1a4('0x58')]['id'];}_0xfe62b4[_0xe1a4('0x58')][_0xe1a4('0x5f')]=_0xfe62b4['body']['UserId']||_0xfe62b4[_0xe1a4('0x60')]['id'];_0x2b1677['agent']['id']=_0xfe62b4['body'][_0xe1a4('0x5f')];return db['ChatMessage'][_0xe1a4('0x57')]({'where':{'id':_0xfe62b4['params']['id'],'UserId':null}})[_0xe1a4('0x36')](handleEntityNotFound(_0x166286,null))[_0xe1a4('0x36')](function(_0x1be43d){if(_0x1be43d){_0x2b1677['message']=_0x1be43d[_0xe1a4('0x68')]({'plain':!![]});return db['ChatInteraction'][_0xe1a4('0x57')]({'where':{'id':_0x1be43d[_0xe1a4('0x63')]}});}return null;})[_0xe1a4('0x36')](handleEntityNotFound(_0x166286,null))[_0xe1a4('0x36')](function(_0x29e102){if(_0x29e102){_0x2b1677[_0xe1a4('0x67')]=_0x29e102['get']({'plain':!![]});interaction_log[_0xe1a4('0x28')]('[CHATMESSAGE:REJECT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s',_0xfe62b4[_0xe1a4('0x60')]['id'],_0xfe62b4['user']['name'],_0xfe62b4[_0xe1a4('0x60')]['role'],_0x2b1677[_0xe1a4('0x67')]['id'],_0xfe62b4[_0xe1a4('0x58')]?JSON[_0xe1a4('0x24')](_0xfe62b4[_0xe1a4('0x58')]):_0xe1a4('0x6b'));return respondWithRpcPromise(_0xe1a4('0x75'),_0xe1a4('0x76'),_0x2b1677);}return null;})[_0xe1a4('0x36')](function(_0x3b3561){if(_0x3b3561){_0x3b3561[_0xe1a4('0x27')][_0xe1a4('0x77')]=util['format'](_0xe1a4('0x78'),_0xfe62b4[_0xe1a4('0x60')]['name']);_0x3b3561[_0xe1a4('0x27')][_0xe1a4('0x6f')]=_0x2b1677[_0xe1a4('0x6f')];_0x3b3561['message'][_0xe1a4('0x70')]='reject';respondWithRpcPromise(_0xe1a4('0x71'),_0xe1a4('0x71'),{'event':_0xe1a4('0x79'),'message':_0x3b3561[_0xe1a4('0x27')]},client9002);return _0x2b1677;}return null;})[_0xe1a4('0x36')](respondWithResult(_0x166286,null))[_0xe1a4('0x29')](handleError(_0x166286,null));};