Built motion from commit 14588770.|2.5.38
[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 _0x82d2=['lastMessage','lastMessageAt','format','YYYY-MM-DD\x20HH:mm:ss','getUsers','User','agent','user','fullname','userpic','internal','online','lastLoginAt','allowmessenger','showWebBar','-online','VoiceQueue','VoiceQueues','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','Agents','userProfileId','autoAssociation','UserProfileResource','push','FromId','ToId','-createdAt','all','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','to-csv','ejs','lodash','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','redis','socket.io-emitter','register','sendStatus','status','end','json','offset','undefined','count','limit','set','Content-Range','reject','save','then','destroy','error','stack','name','send','index','map','ChatInternalMessage','rawAttributes','fieldName','type','key','keys','query','filters','intersection','model','fields','attributes','length','hasOwnProperty','nolimit','sort','where','pick','filter','merge','includeAll','findAll','rows','catch','show','include','options','find','create','body','params','describe','get','messages','createdAt'];(function(_0x30abff,_0x5f2c5f){var _0x4c571e=function(_0x43de9a){while(--_0x43de9a){_0x30abff['push'](_0x30abff['shift']());}};_0x4c571e(++_0x5f2c5f);}(_0x82d2,0x1de));var _0x282d=function(_0x30ebca,_0x516daa){_0x30ebca=_0x30ebca-0x0;var _0x2f37cf=_0x82d2[_0x30ebca];return _0x2f37cf;};'use strict';var emlformat=require(_0x282d('0x0'));var rimraf=require(_0x282d('0x1'));var zipdir=require(_0x282d('0x2'));var jsonpatch=require(_0x282d('0x3'));var rp=require(_0x282d('0x4'));var moment=require(_0x282d('0x5'));var BPromise=require(_0x282d('0x6'));var Mustache=require('mustache');var util=require('util');var path=require('path');var sox=require('sox');var csv=require(_0x282d('0x7'));var ejs=require(_0x282d('0x8'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x282d('0x9'));var squel=require('squel');var crypto=require(_0x282d('0xa'));var jsforce=require(_0x282d('0xb'));var deskjs=require(_0x282d('0xc'));var toCsv=require('to-csv');var querystring=require(_0x282d('0xd'));var Papa=require(_0x282d('0xe'));var Redis=require(_0x282d('0xf'));var authService=require('../../components/auth/service');var qs=require(_0x282d('0x10'));var as=require(_0x282d('0x11'));var hardwareService=require(_0x282d('0x12'));var logger=require(_0x282d('0x13'))(_0x282d('0x14'));var utils=require(_0x282d('0x15'));var config=require(_0x282d('0x16'));var licenseUtil=require('../../config/license/util');var db=require(_0x282d('0x17'))['db'];config[_0x282d('0x18')]=_['defaults'](config[_0x282d('0x18')],{'host':'localhost','port':0x18eb});var socket=require(_0x282d('0x19'))(new Redis(config[_0x282d('0x18')]));require('./chatInternalMessage.socket')[_0x282d('0x1a')](socket);function respondWithStatusCode(_0x4eeaca,_0x595660){_0x595660=_0x595660||0xcc;return function(_0x56306a){if(_0x56306a){return _0x4eeaca[_0x282d('0x1b')](_0x595660);}return _0x4eeaca[_0x282d('0x1c')](_0x595660)[_0x282d('0x1d')]();};}function respondWithResult(_0x1bf0eb,_0x5bae9f){_0x5bae9f=_0x5bae9f||0xc8;return function(_0x4c2f8f){if(_0x4c2f8f){return _0x1bf0eb[_0x282d('0x1c')](_0x5bae9f)[_0x282d('0x1e')](_0x4c2f8f);}};}function respondWithFilteredResult(_0xe81367,_0x814a5){return function(_0x5d233e){if(_0x5d233e){var _0x2fc620=typeof _0x814a5[_0x282d('0x1f')]===_0x282d('0x20')&&typeof _0x814a5['limit']===_0x282d('0x20');var _0x2eb6a9=_0x5d233e[_0x282d('0x21')];var _0x285079=_0x2fc620?0x0:_0x814a5['offset'];var _0x1f8734=_0x2fc620?_0x5d233e[_0x282d('0x21')]:_0x814a5[_0x282d('0x1f')]+_0x814a5[_0x282d('0x22')];var _0x42ddef;if(_0x1f8734>=_0x2eb6a9){_0x1f8734=_0x2eb6a9;_0x42ddef=0xc8;}else{_0x42ddef=0xce;}_0xe81367[_0x282d('0x1c')](_0x42ddef);return _0xe81367[_0x282d('0x23')](_0x282d('0x24'),_0x285079+'-'+_0x1f8734+'/'+_0x2eb6a9)[_0x282d('0x1e')](_0x5d233e);}return null;};}function patchUpdates(_0x4dec99){return function(_0x2ac9e8){try{jsonpatch['apply'](_0x2ac9e8,_0x4dec99,!![]);}catch(_0x4bc33f){return BPromise[_0x282d('0x25')](_0x4bc33f);}return _0x2ac9e8[_0x282d('0x26')]();};}function saveUpdates(_0x4ae500,_0x29a0d8){return function(_0x327a1a){if(_0x327a1a){return _0x327a1a['update'](_0x4ae500)[_0x282d('0x27')](function(_0x230bb6){return _0x230bb6;});}return null;};}function removeEntity(_0x7f216e,_0x4826d6){return function(_0x304935){if(_0x304935){return _0x304935[_0x282d('0x28')]()[_0x282d('0x27')](function(){_0x7f216e[_0x282d('0x1c')](0xcc)['end']();});}};}function handleEntityNotFound(_0x5f45c0,_0x36b2e2){return function(_0x5d9c61){if(!_0x5d9c61){_0x5f45c0[_0x282d('0x1b')](0x194);}return _0x5d9c61;};}function handleError(_0x771403,_0xe76281){_0xe76281=_0xe76281||0x1f4;return function(_0x1fbbc9){logger[_0x282d('0x29')](_0x1fbbc9[_0x282d('0x2a')]);if(_0x1fbbc9[_0x282d('0x2b')]){delete _0x1fbbc9[_0x282d('0x2b')];}_0x771403[_0x282d('0x1c')](_0xe76281)[_0x282d('0x2c')](_0x1fbbc9);};}exports[_0x282d('0x2d')]=function(_0x56086b,_0x396e86){var _0x1cb5fb={},_0x573922={},_0x4bee4f={'count':0x0,'rows':[]};var _0x26faa3=_[_0x282d('0x2e')](db[_0x282d('0x2f')][_0x282d('0x30')],function(_0x16681b){return{'name':_0x16681b[_0x282d('0x31')],'type':_0x16681b[_0x282d('0x32')][_0x282d('0x33')]};});_0x573922['model']=_['map'](_0x26faa3,_0x282d('0x2b'));_0x573922['query']=_[_0x282d('0x34')](_0x56086b[_0x282d('0x35')]);_0x573922[_0x282d('0x36')]=_[_0x282d('0x37')](_0x573922[_0x282d('0x38')],_0x573922[_0x282d('0x35')]);_0x1cb5fb['attributes']=_['intersection'](_0x573922[_0x282d('0x38')],qs[_0x282d('0x39')](_0x56086b['query']['fields']));_0x1cb5fb[_0x282d('0x3a')]=_0x1cb5fb[_0x282d('0x3a')][_0x282d('0x3b')]?_0x1cb5fb[_0x282d('0x3a')]:_0x573922[_0x282d('0x38')];if(!_0x56086b[_0x282d('0x35')][_0x282d('0x3c')](_0x282d('0x3d'))){_0x1cb5fb['limit']=qs[_0x282d('0x22')](_0x56086b[_0x282d('0x35')][_0x282d('0x22')]);_0x1cb5fb[_0x282d('0x1f')]=qs[_0x282d('0x1f')](_0x56086b['query'][_0x282d('0x1f')]);}_0x1cb5fb['order']=qs['sort'](_0x56086b[_0x282d('0x35')][_0x282d('0x3e')]);_0x1cb5fb[_0x282d('0x3f')]=qs[_0x282d('0x36')](_[_0x282d('0x40')](_0x56086b[_0x282d('0x35')],_0x573922['filters']),_0x26faa3);if(_0x56086b[_0x282d('0x35')]['filter']){_0x1cb5fb[_0x282d('0x3f')]=_['merge'](_0x1cb5fb[_0x282d('0x3f')],{'$or':_[_0x282d('0x2e')](_0x26faa3,function(_0x4ddd46){if(_0x4ddd46['type']!=='VIRTUAL'){var _0x5b2a25={};_0x5b2a25[_0x4ddd46[_0x282d('0x2b')]]={'$like':'%'+_0x56086b[_0x282d('0x35')][_0x282d('0x41')]+'%'};return _0x5b2a25;}})});}_0x1cb5fb=_[_0x282d('0x42')]({},_0x1cb5fb,_0x56086b['options']);var _0x14549f={'where':_0x1cb5fb[_0x282d('0x3f')]};return db[_0x282d('0x2f')]['count'](_0x14549f)[_0x282d('0x27')](function(_0x2df434){_0x4bee4f[_0x282d('0x21')]=_0x2df434;if(_0x56086b[_0x282d('0x35')][_0x282d('0x43')]){_0x1cb5fb['include']=[{'all':!![]}];}return db[_0x282d('0x2f')][_0x282d('0x44')](_0x1cb5fb);})[_0x282d('0x27')](function(_0x662175){_0x4bee4f[_0x282d('0x45')]=_0x662175;return _0x4bee4f;})[_0x282d('0x27')](respondWithFilteredResult(_0x396e86,_0x1cb5fb))[_0x282d('0x46')](handleError(_0x396e86,null));};exports[_0x282d('0x47')]=function(_0x482e0e,_0x1bad24){var _0x4f217c={'raw':!![],'where':{'id':_0x482e0e['params']['id']}},_0x149947={};_0x149947[_0x282d('0x38')]=_[_0x282d('0x34')](db['ChatInternalMessage'][_0x282d('0x30')]);_0x149947[_0x282d('0x35')]=_[_0x282d('0x34')](_0x482e0e[_0x282d('0x35')]);_0x149947['filters']=_['intersection'](_0x149947['model'],_0x149947['query']);_0x4f217c['attributes']=_[_0x282d('0x37')](_0x149947[_0x282d('0x38')],qs[_0x282d('0x39')](_0x482e0e[_0x282d('0x35')][_0x282d('0x39')]));_0x4f217c[_0x282d('0x3a')]=_0x4f217c['attributes']['length']?_0x4f217c[_0x282d('0x3a')]:_0x149947[_0x282d('0x38')];if(_0x482e0e['query'][_0x282d('0x43')]){_0x4f217c[_0x282d('0x48')]=[{'all':!![]}];}_0x4f217c=_[_0x282d('0x42')]({},_0x4f217c,_0x482e0e[_0x282d('0x49')]);return db[_0x282d('0x2f')][_0x282d('0x4a')](_0x4f217c)[_0x282d('0x27')](handleEntityNotFound(_0x1bad24,null))[_0x282d('0x27')](respondWithResult(_0x1bad24,null))[_0x282d('0x46')](handleError(_0x1bad24,null));};exports['create']=function(_0x3c4390,_0x38379b){return db[_0x282d('0x2f')][_0x282d('0x4b')](_0x3c4390[_0x282d('0x4c')],{})['then'](respondWithResult(_0x38379b,0xc9))[_0x282d('0x46')](handleError(_0x38379b,null));};exports['update']=function(_0x1ec10c,_0x250a34){if(_0x1ec10c[_0x282d('0x4c')]['id']){delete _0x1ec10c[_0x282d('0x4c')]['id'];}return db[_0x282d('0x2f')][_0x282d('0x4a')]({'where':{'id':_0x1ec10c['params']['id']}})[_0x282d('0x27')](handleEntityNotFound(_0x250a34,null))[_0x282d('0x27')](saveUpdates(_0x1ec10c[_0x282d('0x4c')],null))[_0x282d('0x27')](respondWithResult(_0x250a34,null))[_0x282d('0x46')](handleError(_0x250a34,null));};exports[_0x282d('0x28')]=function(_0x100a6e,_0x37b09b){return db[_0x282d('0x2f')]['find']({'where':{'id':_0x100a6e[_0x282d('0x4d')]['id']}})[_0x282d('0x27')](handleEntityNotFound(_0x37b09b,null))[_0x282d('0x27')](removeEntity(_0x37b09b,null))[_0x282d('0x46')](handleError(_0x37b09b,null));};exports[_0x282d('0x4e')]=function(_0x51a84b,_0x28cd31){return db[_0x282d('0x2f')]['describe']()['then'](respondWithResult(_0x28cd31,null))[_0x282d('0x46')](handleError(_0x28cd31,null));};function wrapUser(_0x87fc00){return function(_0x5577c6){var _0x7c5256=_0x87fc00[_0x282d('0x4f')]({'plain':!![]});_0x7c5256[_0x282d('0x50')]=[];if(_0x5577c6){_0x7c5256['lastMessageAt']=_0x5577c6[_0x282d('0x51')];_0x7c5256[_0x282d('0x52')]=_0x5577c6;}else{_0x7c5256[_0x282d('0x53')]=moment(0x0)[_0x282d('0x54')](_0x282d('0x55'));_0x7c5256[_0x282d('0x52')]={};}return _0x7c5256;};}exports[_0x282d('0x56')]=function(_0x3992fd,_0x4ce518,_0x4dea36){var _0x27e39c=[];return db[_0x282d('0x57')][_0x282d('0x44')]({'where':{'role':[_0x282d('0x58'),'admin',_0x282d('0x59')]},'attributes':['id',_0x282d('0x5a'),_0x282d('0x2b'),'role',_0x282d('0x5b'),_0x282d('0x5c'),_0x282d('0x5d'),_0x282d('0x5e'),_0x282d('0x5f'),_0x282d('0x60')],'order':qs[_0x282d('0x3e')](_0x282d('0x61')),'include':[{'model':db[_0x282d('0x62')],'as':_0x282d('0x63'),'attributes':['id','name',_0x282d('0x32')],'through':{'attributes':[]}}]})['then'](function(_0x48d833){if(_0x48d833){var _0x587e6e=_0x3992fd[_0x282d('0x59')][_0x282d('0x4f')]({'plain':!![]});if(!_0x587e6e)throw new Error(_0x282d('0x64'));if(_0x587e6e[_0x282d('0x65')]===_0x282d('0x59')){return db[_0x282d('0x66')][_0x282d('0x4a')]({'where':{'name':_0x282d('0x67'),'userProfileId':_0x587e6e[_0x282d('0x68')]},'raw':!![]})[_0x282d('0x27')](function(_0xb20c36){if(_0xb20c36){if(_0xb20c36[_0x282d('0x69')]===0x0){return db[_0x282d('0x6a')][_0x282d('0x44')]({'where':{'sectionId':_0xb20c36['id']},'raw':!![]})['then'](function(_0x4edf9d){var _0xd39718=[];if(_['isEmpty'](_0x4edf9d)){_0xd39718=_['filter'](_0x48d833,function(_0x276a09){if(_0x276a09['role']!==_0x282d('0x58')){return _0x276a09;}});return _0xd39718;}else{for(var _0x180257=0x0;_0x180257<_0x48d833[_0x282d('0x3b')];_0x180257++){var _0x40cc9b=_0x48d833[_0x180257];if(_0x40cc9b[_0x282d('0x65')]===_0x282d('0x58')){var _0x4d748e=_[_0x282d('0x4a')](_0x4edf9d,function(_0x3d70fd){return _0x3d70fd['resourceId']===_0x40cc9b['id'];});if(_0x4d748e)_0xd39718[_0x282d('0x6b')](_0x40cc9b);}else{_0xd39718[_0x282d('0x6b')](_0x40cc9b);}}return _0xd39718;}});}else{return _0x48d833;}}else{var _0x24b259=_['filter'](_0x48d833,function(_0x353141){if(_0x353141[_0x282d('0x65')]!==_0x282d('0x58')){return _0x353141;}});return _0x24b259;}});}else{return _0x48d833;}}})[_0x282d('0x27')](function(_0x35df8a){var _0x27f915=[];if(_0x35df8a){_0x27e39c=_0x35df8a;for(var _0x3dab99=0x0;_0x3dab99<_0x35df8a[_0x282d('0x3b')];_0x3dab99+=0x1){_0x27e39c[_0x3dab99][_0x282d('0x50')]=[];_0x27f915[_0x282d('0x6b')](db[_0x282d('0x2f')][_0x282d('0x4a')]({'where':{'FromId':[_0x3992fd['user']['id'],_0x35df8a[_0x3dab99]['id']],'ToId':[_0x3992fd[_0x282d('0x59')]['id'],_0x35df8a[_0x3dab99]['id']],'ChatGroupId':null},'attributes':['id',_0x282d('0x51'),_0x282d('0x6c'),_0x282d('0x6d'),'read',_0x282d('0x4c')],'order':qs[_0x282d('0x3e')](_0x282d('0x6e')),'limit':0x1,'offset':0x0,'raw':!![]})['then'](wrapUser(_0x35df8a[_0x3dab99])));}return BPromise[_0x282d('0x6f')](_0x27f915);}return[];})[_0x282d('0x27')](function(_0x515716){return{'rows':_0x515716,'count':_0x515716[_0x282d('0x3b')]};})['then'](respondWithResult(_0x4ce518,null))[_0x282d('0x46')](handleError(_0x4ce518,null));};