beaad454bce29eea526a8a1e5f8086f208261731
[motion2.git] / server / api / chatInternalMessage / chatInternalMessage.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 _0xc2c1=['set','Content-Range','json','apply','reject','save','update','then','destroy','error','name','map','ChatInternalMessage','rawAttributes','fieldName','key','model','keys','query','filters','intersection','attributes','fields','length','hasOwnProperty','limit','sort','where','pick','filter','merge','type','VIRTUAL','includeAll','include','rows','catch','show','params','options','find','create','body','describe','messages','lastMessageAt','createdAt','format','YYYY-MM-DD\x20HH:mm:ss','User','findAll','agent','admin','user','fullname','role','userpic','internal','lastLoginAt','allowmessenger','showWebBar','-online','VoiceQueue','Unable\x20to\x20retrieve\x20the\x20current\x20user','Agents','userProfileId','autoAssociation','UserProfileResource','isEmpty','resourceId','push','FromId','read','all','html-pdf','rimraf','fast-json-patch','request-promise','moment','bluebird','mustache','util','sox','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','redis','localhost','socket.io-emitter','./chatInternalMessage.socket','register','sendStatus','status','end','count','offset'];(function(_0x6fefb5,_0x5bcf9b){var _0x48b01a=function(_0x4f6d3e){while(--_0x4f6d3e){_0x6fefb5['push'](_0x6fefb5['shift']());}};_0x48b01a(++_0x5bcf9b);}(_0xc2c1,0xb9));var _0x1c2c=function(_0x5eb7ef,_0x45da28){_0x5eb7ef=_0x5eb7ef-0x0;var _0x1a4291=_0xc2c1[_0x5eb7ef];return _0x1a4291;};'use strict';var pdf=require(_0x1c2c('0x0'));var emlformat=require('eml-format');var rimraf=require(_0x1c2c('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x1c2c('0x2'));var rp=require(_0x1c2c('0x3'));var moment=require(_0x1c2c('0x4'));var BPromise=require(_0x1c2c('0x5'));var Mustache=require(_0x1c2c('0x6'));var util=require(_0x1c2c('0x7'));var path=require('path');var sox=require(_0x1c2c('0x8'));var csv=require(_0x1c2c('0x9'));var ejs=require(_0x1c2c('0xa'));var fs=require('fs');var _=require(_0x1c2c('0xb'));var squel=require(_0x1c2c('0xc'));var crypto=require(_0x1c2c('0xd'));var jsforce=require(_0x1c2c('0xe'));var deskjs=require(_0x1c2c('0xf'));var toCsv=require(_0x1c2c('0x9'));var querystring=require(_0x1c2c('0x10'));var Papa=require(_0x1c2c('0x11'));var Redis=require(_0x1c2c('0x12'));var authService=require(_0x1c2c('0x13'));var qs=require('../../components/parsers/qs');var as=require(_0x1c2c('0x14'));var hardwareService=require(_0x1c2c('0x15'));var logger=require(_0x1c2c('0x16'))(_0x1c2c('0x17'));var utils=require(_0x1c2c('0x18'));var config=require(_0x1c2c('0x19'));var licenseUtil=require('../../config/license/util');var db=require(_0x1c2c('0x1a'))['db'];config[_0x1c2c('0x1b')]=_['defaults'](config['redis'],{'host':_0x1c2c('0x1c'),'port':0x18eb});var socket=require(_0x1c2c('0x1d'))(new Redis(config[_0x1c2c('0x1b')]));require(_0x1c2c('0x1e'))[_0x1c2c('0x1f')](socket);function respondWithStatusCode(_0x247f0a,_0x47feba){_0x47feba=_0x47feba||0xcc;return function(_0x349f64){if(_0x349f64){return _0x247f0a[_0x1c2c('0x20')](_0x47feba);}return _0x247f0a[_0x1c2c('0x21')](_0x47feba)[_0x1c2c('0x22')]();};}function respondWithResult(_0xa6b271,_0x3c9c1a){_0x3c9c1a=_0x3c9c1a||0xc8;return function(_0x2a78f8){if(_0x2a78f8){return _0xa6b271[_0x1c2c('0x21')](_0x3c9c1a)['json'](_0x2a78f8);}};}function respondWithFilteredResult(_0x53e01b,_0x2415a8){return function(_0x101b14){if(_0x101b14){var _0x4b9b75=_0x101b14[_0x1c2c('0x23')],_0x4067ad=_0x2415a8[_0x1c2c('0x24')],_0x7d5777=_0x2415a8[_0x1c2c('0x24')]+_0x2415a8['limit'],_0x3bb32c;if(_0x7d5777>=_0x4b9b75){_0x7d5777=_0x4b9b75;_0x3bb32c=0xc8;}else{_0x3bb32c=0xce;}_0x53e01b[_0x1c2c('0x21')](_0x3bb32c);return _0x53e01b[_0x1c2c('0x25')](_0x1c2c('0x26'),_0x4067ad+'-'+_0x7d5777+'/'+_0x4b9b75)[_0x1c2c('0x27')](_0x101b14);}return null;};}function patchUpdates(_0x614769){return function(_0x5d11f9){try{jsonpatch[_0x1c2c('0x28')](_0x5d11f9,_0x614769,!![]);}catch(_0x11130b){return BPromise[_0x1c2c('0x29')](_0x11130b);}return _0x5d11f9[_0x1c2c('0x2a')]();};}function saveUpdates(_0x20a2d2,_0x3832a6){return function(_0x545ad7){if(_0x545ad7){return _0x545ad7[_0x1c2c('0x2b')](_0x20a2d2)[_0x1c2c('0x2c')](function(_0x4d5760){return _0x4d5760;});}return null;};}function removeEntity(_0xb412c,_0x430f24){return function(_0x1ee8c4){if(_0x1ee8c4){return _0x1ee8c4[_0x1c2c('0x2d')]()['then'](function(){_0xb412c[_0x1c2c('0x21')](0xcc)[_0x1c2c('0x22')]();});}};}function handleEntityNotFound(_0x6ca879,_0x171dec){return function(_0x5d0b78){if(!_0x5d0b78){_0x6ca879[_0x1c2c('0x20')](0x194);}return _0x5d0b78;};}function handleError(_0x146d3a,_0x255648){_0x255648=_0x255648||0x1f4;return function(_0x3048fb){logger[_0x1c2c('0x2e')](_0x3048fb['stack']);if(_0x3048fb['name']){delete _0x3048fb[_0x1c2c('0x2f')];}_0x146d3a[_0x1c2c('0x21')](_0x255648)['send'](_0x3048fb);};}exports['index']=function(_0x17c4b1,_0x36e548){var _0x17ba5b={},_0x516754={},_0x1134f6={'count':0x0,'rows':[]};var _0xc1a7cd=_[_0x1c2c('0x30')](db[_0x1c2c('0x31')][_0x1c2c('0x32')],function(_0x425f09){return{'name':_0x425f09[_0x1c2c('0x33')],'type':_0x425f09['type'][_0x1c2c('0x34')]};});_0x516754[_0x1c2c('0x35')]=_[_0x1c2c('0x30')](_0xc1a7cd,'name');_0x516754['query']=_[_0x1c2c('0x36')](_0x17c4b1[_0x1c2c('0x37')]);_0x516754[_0x1c2c('0x38')]=_[_0x1c2c('0x39')](_0x516754[_0x1c2c('0x35')],_0x516754[_0x1c2c('0x37')]);_0x17ba5b[_0x1c2c('0x3a')]=_[_0x1c2c('0x39')](_0x516754[_0x1c2c('0x35')],qs[_0x1c2c('0x3b')](_0x17c4b1[_0x1c2c('0x37')][_0x1c2c('0x3b')]));_0x17ba5b[_0x1c2c('0x3a')]=_0x17ba5b['attributes'][_0x1c2c('0x3c')]?_0x17ba5b[_0x1c2c('0x3a')]:_0x516754[_0x1c2c('0x35')];if(!_0x17c4b1[_0x1c2c('0x37')][_0x1c2c('0x3d')]('nolimit')){_0x17ba5b[_0x1c2c('0x3e')]=qs['limit'](_0x17c4b1[_0x1c2c('0x37')][_0x1c2c('0x3e')]);_0x17ba5b['offset']=qs[_0x1c2c('0x24')](_0x17c4b1[_0x1c2c('0x37')][_0x1c2c('0x24')]);}_0x17ba5b['order']=qs[_0x1c2c('0x3f')](_0x17c4b1[_0x1c2c('0x37')]['sort']);_0x17ba5b[_0x1c2c('0x40')]=qs[_0x1c2c('0x38')](_[_0x1c2c('0x41')](_0x17c4b1['query'],_0x516754['filters']),_0xc1a7cd);if(_0x17c4b1[_0x1c2c('0x37')][_0x1c2c('0x42')]){_0x17ba5b[_0x1c2c('0x40')]=_[_0x1c2c('0x43')](_0x17ba5b['where'],{'$or':_[_0x1c2c('0x30')](_0xc1a7cd,function(_0x250de4){if(_0x250de4[_0x1c2c('0x44')]!==_0x1c2c('0x45')){var _0xe3b205={};_0xe3b205[_0x250de4[_0x1c2c('0x2f')]]={'$like':'%'+_0x17c4b1['query']['filter']+'%'};return _0xe3b205;}})});}_0x17ba5b=_[_0x1c2c('0x43')]({},_0x17ba5b,_0x17c4b1['options']);var _0x2c6ed9={'where':_0x17ba5b['where']};return db[_0x1c2c('0x31')]['count'](_0x2c6ed9)[_0x1c2c('0x2c')](function(_0x2b3559){_0x1134f6[_0x1c2c('0x23')]=_0x2b3559;if(_0x17c4b1[_0x1c2c('0x37')][_0x1c2c('0x46')]){_0x17ba5b[_0x1c2c('0x47')]=[{'all':!![]}];}return db[_0x1c2c('0x31')]['findAll'](_0x17ba5b);})['then'](function(_0x541dd6){_0x1134f6[_0x1c2c('0x48')]=_0x541dd6;return _0x1134f6;})[_0x1c2c('0x2c')](respondWithFilteredResult(_0x36e548,_0x17ba5b))[_0x1c2c('0x49')](handleError(_0x36e548,null));};exports[_0x1c2c('0x4a')]=function(_0x39f063,_0x37f51b){var _0x366875={'raw':!![],'where':{'id':_0x39f063[_0x1c2c('0x4b')]['id']}},_0x4fb01b={};_0x4fb01b[_0x1c2c('0x35')]=_[_0x1c2c('0x36')](db[_0x1c2c('0x31')][_0x1c2c('0x32')]);_0x4fb01b[_0x1c2c('0x37')]=_[_0x1c2c('0x36')](_0x39f063[_0x1c2c('0x37')]);_0x4fb01b[_0x1c2c('0x38')]=_[_0x1c2c('0x39')](_0x4fb01b[_0x1c2c('0x35')],_0x4fb01b[_0x1c2c('0x37')]);_0x366875[_0x1c2c('0x3a')]=_['intersection'](_0x4fb01b[_0x1c2c('0x35')],qs[_0x1c2c('0x3b')](_0x39f063[_0x1c2c('0x37')][_0x1c2c('0x3b')]));_0x366875[_0x1c2c('0x3a')]=_0x366875[_0x1c2c('0x3a')][_0x1c2c('0x3c')]?_0x366875[_0x1c2c('0x3a')]:_0x4fb01b[_0x1c2c('0x35')];if(_0x39f063[_0x1c2c('0x37')][_0x1c2c('0x46')]){_0x366875[_0x1c2c('0x47')]=[{'all':!![]}];}_0x366875=_[_0x1c2c('0x43')]({},_0x366875,_0x39f063[_0x1c2c('0x4c')]);return db[_0x1c2c('0x31')][_0x1c2c('0x4d')](_0x366875)['then'](handleEntityNotFound(_0x37f51b,null))[_0x1c2c('0x2c')](respondWithResult(_0x37f51b,null))['catch'](handleError(_0x37f51b,null));};exports[_0x1c2c('0x4e')]=function(_0x105b06,_0x35bb40){return db['ChatInternalMessage'][_0x1c2c('0x4e')](_0x105b06[_0x1c2c('0x4f')],{})[_0x1c2c('0x2c')](respondWithResult(_0x35bb40,0xc9))[_0x1c2c('0x49')](handleError(_0x35bb40,null));};exports[_0x1c2c('0x2b')]=function(_0x1bb6f6,_0x34fc35){if(_0x1bb6f6[_0x1c2c('0x4f')]['id']){delete _0x1bb6f6['body']['id'];}return db[_0x1c2c('0x31')][_0x1c2c('0x4d')]({'where':{'id':_0x1bb6f6['params']['id']}})[_0x1c2c('0x2c')](handleEntityNotFound(_0x34fc35,null))[_0x1c2c('0x2c')](saveUpdates(_0x1bb6f6['body'],null))[_0x1c2c('0x2c')](respondWithResult(_0x34fc35,null))['catch'](handleError(_0x34fc35,null));};exports[_0x1c2c('0x2d')]=function(_0x2f56a5,_0x17ca0e){return db[_0x1c2c('0x31')][_0x1c2c('0x4d')]({'where':{'id':_0x2f56a5[_0x1c2c('0x4b')]['id']}})[_0x1c2c('0x2c')](handleEntityNotFound(_0x17ca0e,null))[_0x1c2c('0x2c')](removeEntity(_0x17ca0e,null))['catch'](handleError(_0x17ca0e,null));};exports[_0x1c2c('0x50')]=function(_0x5a4498,_0x2f2c1a){return db['ChatInternalMessage'][_0x1c2c('0x50')]()[_0x1c2c('0x2c')](respondWithResult(_0x2f2c1a,null))[_0x1c2c('0x49')](handleError(_0x2f2c1a,null));};function wrapUser(_0x5a5dfe){return function(_0x3e89ef){var _0x415d2f=_0x5a5dfe['get']({'plain':!![]});_0x415d2f[_0x1c2c('0x51')]=[];if(_0x3e89ef){_0x415d2f[_0x1c2c('0x52')]=_0x3e89ef[_0x1c2c('0x53')];_0x415d2f['lastMessage']=_0x3e89ef;}else{_0x415d2f[_0x1c2c('0x52')]=moment(0x0)[_0x1c2c('0x54')](_0x1c2c('0x55'));_0x415d2f['lastMessage']={};}return _0x415d2f;};}exports['getUsers']=function(_0x16fd0b,_0x23759e,_0x4c1f87){var _0x5ee65a=[];return db[_0x1c2c('0x56')][_0x1c2c('0x57')]({'where':{'role':[_0x1c2c('0x58'),_0x1c2c('0x59'),_0x1c2c('0x5a')]},'attributes':['id',_0x1c2c('0x5b'),'name',_0x1c2c('0x5c'),_0x1c2c('0x5d'),_0x1c2c('0x5e'),'online',_0x1c2c('0x5f'),_0x1c2c('0x60'),_0x1c2c('0x61')],'order':qs[_0x1c2c('0x3f')](_0x1c2c('0x62')),'include':[{'model':db[_0x1c2c('0x63')],'as':'VoiceQueues','attributes':['id',_0x1c2c('0x2f'),_0x1c2c('0x44')],'through':{'attributes':[]}}]})['then'](function(_0x50a2b9){if(_0x50a2b9){var _0x3cf4ca=_0x16fd0b[_0x1c2c('0x5a')]['get']({'plain':!![]});if(!_0x3cf4ca)throw new Error(_0x1c2c('0x64'));if(_0x3cf4ca[_0x1c2c('0x5c')]===_0x1c2c('0x5a')){return db['UserProfileSection'][_0x1c2c('0x4d')]({'where':{'name':_0x1c2c('0x65'),'userProfileId':_0x3cf4ca[_0x1c2c('0x66')]},'raw':!![]})[_0x1c2c('0x2c')](function(_0x45ab94){if(_0x45ab94){if(_0x45ab94[_0x1c2c('0x67')]===0x0){return db[_0x1c2c('0x68')][_0x1c2c('0x57')]({'where':{'sectionId':_0x45ab94['id']},'raw':!![]})[_0x1c2c('0x2c')](function(_0x292878){var _0x53a69f=[];if(_[_0x1c2c('0x69')](_0x292878)){_0x53a69f=_[_0x1c2c('0x42')](_0x50a2b9,function(_0x2fcc76){if(_0x2fcc76[_0x1c2c('0x5c')]!==_0x1c2c('0x58')){return _0x2fcc76;}});return _0x53a69f;}else{for(var _0x4dbdbb=0x0;_0x4dbdbb<_0x50a2b9[_0x1c2c('0x3c')];_0x4dbdbb++){var _0x3a85ae=_0x50a2b9[_0x4dbdbb];if(_0x3a85ae[_0x1c2c('0x5c')]===_0x1c2c('0x58')){var _0x50a1ed=_[_0x1c2c('0x4d')](_0x292878,function(_0x223439){return _0x223439[_0x1c2c('0x6a')]===_0x3a85ae['id'];});if(_0x50a1ed)_0x53a69f[_0x1c2c('0x6b')](_0x3a85ae);}else{_0x53a69f[_0x1c2c('0x6b')](_0x3a85ae);}}return _0x53a69f;}});}else{return _0x50a2b9;}}else{var _0x44a968=_[_0x1c2c('0x42')](_0x50a2b9,function(_0x3ab95a){if(_0x3ab95a[_0x1c2c('0x5c')]!=='agent'){return _0x3ab95a;}});return _0x44a968;}});}else{return _0x50a2b9;}}})['then'](function(_0xa9bbc9){var _0x3e19fb=[];if(_0xa9bbc9){_0x5ee65a=_0xa9bbc9;for(var _0x47c392=0x0;_0x47c392<_0xa9bbc9[_0x1c2c('0x3c')];_0x47c392+=0x1){_0x5ee65a[_0x47c392]['messages']=[];_0x3e19fb[_0x1c2c('0x6b')](db[_0x1c2c('0x31')]['find']({'where':{'FromId':[_0x16fd0b[_0x1c2c('0x5a')]['id'],_0xa9bbc9[_0x47c392]['id']],'ToId':[_0x16fd0b[_0x1c2c('0x5a')]['id'],_0xa9bbc9[_0x47c392]['id']],'ChatGroupId':null},'attributes':['id',_0x1c2c('0x53'),_0x1c2c('0x6c'),'ToId',_0x1c2c('0x6d'),_0x1c2c('0x4f')],'order':qs['sort']('-createdAt'),'limit':0x1,'offset':0x0,'raw':!![]})[_0x1c2c('0x2c')](wrapUser(_0xa9bbc9[_0x47c392])));}return BPromise[_0x1c2c('0x6e')](_0x3e19fb);}return[];})['then'](function(_0x22de02){return{'rows':_0x22de02,'count':_0x22de02[_0x1c2c('0x3c')]};})['then'](respondWithResult(_0x23759e,null))[_0x1c2c('0x49')](handleError(_0x23759e,null));};