89efe5dc02cbf8ce52bf51391f54a21a00a42bd0
[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 _0xa404=['all','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','localhost','socket.io-emitter','register','sendStatus','status','end','json','offset','limit','undefined','count','set','Content-Range','apply','reject','save','update','then','destroy','error','stack','name','send','index','map','ChatInternalMessage','rawAttributes','fieldName','type','key','model','query','keys','attributes','intersection','fields','hasOwnProperty','order','sort','where','filters','pick','filter','VIRTUAL','options','includeAll','include','rows','catch','show','params','length','merge','find','create','body','describe','messages','createdAt','lastMessageAt','format','YYYY-MM-DD\x20HH:mm:ss','lastMessage','getUsers','User','findAll','agent','admin','user','userpic','internal','lastLoginAt','VoiceQueues','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','UserProfileSection','Agents','userProfileId','UserProfileResource','isEmpty','role','resourceId','push','FromId','ToId','read'];(function(_0x2a5262,_0x578588){var _0x483802=function(_0x53c24c){while(--_0x53c24c){_0x2a5262['push'](_0x2a5262['shift']());}};_0x483802(++_0x578588);}(_0xa404,0xeb));var _0x4a40=function(_0x588766,_0x1f11a4){_0x588766=_0x588766-0x0;var _0x23c271=_0xa404[_0x588766];return _0x23c271;};'use strict';var emlformat=require(_0x4a40('0x0'));var rimraf=require(_0x4a40('0x1'));var zipdir=require(_0x4a40('0x2'));var jsonpatch=require(_0x4a40('0x3'));var rp=require(_0x4a40('0x4'));var moment=require(_0x4a40('0x5'));var BPromise=require(_0x4a40('0x6'));var Mustache=require(_0x4a40('0x7'));var util=require(_0x4a40('0x8'));var path=require('path');var sox=require('sox');var csv=require(_0x4a40('0x9'));var ejs=require(_0x4a40('0xa'));var fs=require('fs');var fs_extra=require(_0x4a40('0xb'));var _=require(_0x4a40('0xc'));var squel=require(_0x4a40('0xd'));var crypto=require(_0x4a40('0xe'));var jsforce=require(_0x4a40('0xf'));var deskjs=require(_0x4a40('0x10'));var toCsv=require(_0x4a40('0x9'));var querystring=require(_0x4a40('0x11'));var Papa=require(_0x4a40('0x12'));var Redis=require(_0x4a40('0x13'));var authService=require(_0x4a40('0x14'));var qs=require('../../components/parsers/qs');var as=require(_0x4a40('0x15'));var hardwareService=require(_0x4a40('0x16'));var logger=require(_0x4a40('0x17'))('api');var utils=require(_0x4a40('0x18'));var config=require(_0x4a40('0x19'));var licenseUtil=require(_0x4a40('0x1a'));var db=require(_0x4a40('0x1b'))['db'];config[_0x4a40('0x1c')]=_[_0x4a40('0x1d')](config['redis'],{'host':_0x4a40('0x1e'),'port':0x18eb});var socket=require(_0x4a40('0x1f'))(new Redis(config['redis']));require('./chatInternalMessage.socket')[_0x4a40('0x20')](socket);function respondWithStatusCode(_0xac645c,_0x39f3a0){_0x39f3a0=_0x39f3a0||0xcc;return function(_0x89667b){if(_0x89667b){return _0xac645c[_0x4a40('0x21')](_0x39f3a0);}return _0xac645c[_0x4a40('0x22')](_0x39f3a0)[_0x4a40('0x23')]();};}function respondWithResult(_0xd534a0,_0x5e3450){_0x5e3450=_0x5e3450||0xc8;return function(_0x13feae){if(_0x13feae){return _0xd534a0[_0x4a40('0x22')](_0x5e3450)[_0x4a40('0x24')](_0x13feae);}};}function respondWithFilteredResult(_0x3654cb,_0x9f2894){return function(_0x11edcb){if(_0x11edcb){var _0x750880=typeof _0x9f2894[_0x4a40('0x25')]==='undefined'&&typeof _0x9f2894[_0x4a40('0x26')]===_0x4a40('0x27');var _0x773bed=_0x11edcb[_0x4a40('0x28')];var _0x46d21a=_0x750880?0x0:_0x9f2894[_0x4a40('0x25')];var _0x1a9673=_0x750880?_0x11edcb[_0x4a40('0x28')]:_0x9f2894[_0x4a40('0x25')]+_0x9f2894[_0x4a40('0x26')];var _0x3638f3;if(_0x1a9673>=_0x773bed){_0x1a9673=_0x773bed;_0x3638f3=0xc8;}else{_0x3638f3=0xce;}_0x3654cb[_0x4a40('0x22')](_0x3638f3);return _0x3654cb[_0x4a40('0x29')](_0x4a40('0x2a'),_0x46d21a+'-'+_0x1a9673+'/'+_0x773bed)[_0x4a40('0x24')](_0x11edcb);}return null;};}function patchUpdates(_0x2cd1cc){return function(_0x3eba0b){try{jsonpatch[_0x4a40('0x2b')](_0x3eba0b,_0x2cd1cc,!![]);}catch(_0x1daa53){return BPromise[_0x4a40('0x2c')](_0x1daa53);}return _0x3eba0b[_0x4a40('0x2d')]();};}function saveUpdates(_0x459979,_0x496dd3){return function(_0x309de5){if(_0x309de5){return _0x309de5[_0x4a40('0x2e')](_0x459979)[_0x4a40('0x2f')](function(_0x485146){return _0x485146;});}return null;};}function removeEntity(_0x2044c1,_0x6a57bc){return function(_0x366921){if(_0x366921){return _0x366921[_0x4a40('0x30')]()[_0x4a40('0x2f')](function(){_0x2044c1[_0x4a40('0x22')](0xcc)[_0x4a40('0x23')]();});}};}function handleEntityNotFound(_0x281908,_0x92b94c){return function(_0x5c5dcc){if(!_0x5c5dcc){_0x281908['sendStatus'](0x194);}return _0x5c5dcc;};}function handleError(_0x18966f,_0x494296){_0x494296=_0x494296||0x1f4;return function(_0x459941){logger[_0x4a40('0x31')](_0x459941[_0x4a40('0x32')]);if(_0x459941[_0x4a40('0x33')]){delete _0x459941[_0x4a40('0x33')];}_0x18966f[_0x4a40('0x22')](_0x494296)[_0x4a40('0x34')](_0x459941);};}exports[_0x4a40('0x35')]=function(_0x4bee48,_0x4f6421){var _0x322f47={},_0x4e32bb={},_0x1d7628={'count':0x0,'rows':[]};var _0x98d004=_[_0x4a40('0x36')](db[_0x4a40('0x37')][_0x4a40('0x38')],function(_0x4e034d){return{'name':_0x4e034d[_0x4a40('0x39')],'type':_0x4e034d[_0x4a40('0x3a')][_0x4a40('0x3b')]};});_0x4e32bb[_0x4a40('0x3c')]=_[_0x4a40('0x36')](_0x98d004,_0x4a40('0x33'));_0x4e32bb[_0x4a40('0x3d')]=_[_0x4a40('0x3e')](_0x4bee48[_0x4a40('0x3d')]);_0x4e32bb['filters']=_['intersection'](_0x4e32bb[_0x4a40('0x3c')],_0x4e32bb['query']);_0x322f47[_0x4a40('0x3f')]=_[_0x4a40('0x40')](_0x4e32bb['model'],qs[_0x4a40('0x41')](_0x4bee48[_0x4a40('0x3d')][_0x4a40('0x41')]));_0x322f47['attributes']=_0x322f47['attributes']['length']?_0x322f47[_0x4a40('0x3f')]:_0x4e32bb['model'];if(!_0x4bee48[_0x4a40('0x3d')][_0x4a40('0x42')]('nolimit')){_0x322f47[_0x4a40('0x26')]=qs[_0x4a40('0x26')](_0x4bee48[_0x4a40('0x3d')]['limit']);_0x322f47[_0x4a40('0x25')]=qs[_0x4a40('0x25')](_0x4bee48[_0x4a40('0x3d')][_0x4a40('0x25')]);}_0x322f47[_0x4a40('0x43')]=qs[_0x4a40('0x44')](_0x4bee48[_0x4a40('0x3d')][_0x4a40('0x44')]);_0x322f47[_0x4a40('0x45')]=qs[_0x4a40('0x46')](_[_0x4a40('0x47')](_0x4bee48[_0x4a40('0x3d')],_0x4e32bb[_0x4a40('0x46')]),_0x98d004);if(_0x4bee48['query'][_0x4a40('0x48')]){_0x322f47[_0x4a40('0x45')]=_['merge'](_0x322f47[_0x4a40('0x45')],{'$or':_[_0x4a40('0x36')](_0x98d004,function(_0x857afb){if(_0x857afb['type']!==_0x4a40('0x49')){var _0x33c421={};_0x33c421[_0x857afb[_0x4a40('0x33')]]={'$like':'%'+_0x4bee48[_0x4a40('0x3d')][_0x4a40('0x48')]+'%'};return _0x33c421;}})});}_0x322f47=_['merge']({},_0x322f47,_0x4bee48[_0x4a40('0x4a')]);var _0x38a36e={'where':_0x322f47[_0x4a40('0x45')]};return db[_0x4a40('0x37')]['count'](_0x38a36e)[_0x4a40('0x2f')](function(_0x3532ee){_0x1d7628[_0x4a40('0x28')]=_0x3532ee;if(_0x4bee48[_0x4a40('0x3d')][_0x4a40('0x4b')]){_0x322f47[_0x4a40('0x4c')]=[{'all':!![]}];}return db[_0x4a40('0x37')]['findAll'](_0x322f47);})[_0x4a40('0x2f')](function(_0x2bd312){_0x1d7628[_0x4a40('0x4d')]=_0x2bd312;return _0x1d7628;})[_0x4a40('0x2f')](respondWithFilteredResult(_0x4f6421,_0x322f47))[_0x4a40('0x4e')](handleError(_0x4f6421,null));};exports[_0x4a40('0x4f')]=function(_0x573892,_0x2d42a3){var _0x2d29aa={'raw':!![],'where':{'id':_0x573892[_0x4a40('0x50')]['id']}},_0x2fcdf3={};_0x2fcdf3[_0x4a40('0x3c')]=_[_0x4a40('0x3e')](db[_0x4a40('0x37')]['rawAttributes']);_0x2fcdf3[_0x4a40('0x3d')]=_[_0x4a40('0x3e')](_0x573892[_0x4a40('0x3d')]);_0x2fcdf3[_0x4a40('0x46')]=_[_0x4a40('0x40')](_0x2fcdf3[_0x4a40('0x3c')],_0x2fcdf3['query']);_0x2d29aa['attributes']=_[_0x4a40('0x40')](_0x2fcdf3['model'],qs['fields'](_0x573892[_0x4a40('0x3d')]['fields']));_0x2d29aa['attributes']=_0x2d29aa[_0x4a40('0x3f')][_0x4a40('0x51')]?_0x2d29aa[_0x4a40('0x3f')]:_0x2fcdf3['model'];if(_0x573892[_0x4a40('0x3d')][_0x4a40('0x4b')]){_0x2d29aa[_0x4a40('0x4c')]=[{'all':!![]}];}_0x2d29aa=_[_0x4a40('0x52')]({},_0x2d29aa,_0x573892['options']);return db['ChatInternalMessage'][_0x4a40('0x53')](_0x2d29aa)['then'](handleEntityNotFound(_0x2d42a3,null))[_0x4a40('0x2f')](respondWithResult(_0x2d42a3,null))['catch'](handleError(_0x2d42a3,null));};exports[_0x4a40('0x54')]=function(_0x3fe573,_0x5655c9){return db[_0x4a40('0x37')]['create'](_0x3fe573[_0x4a40('0x55')],{})['then'](respondWithResult(_0x5655c9,0xc9))['catch'](handleError(_0x5655c9,null));};exports['update']=function(_0x220845,_0x177bdf){if(_0x220845[_0x4a40('0x55')]['id']){delete _0x220845[_0x4a40('0x55')]['id'];}return db[_0x4a40('0x37')]['find']({'where':{'id':_0x220845[_0x4a40('0x50')]['id']}})['then'](handleEntityNotFound(_0x177bdf,null))[_0x4a40('0x2f')](saveUpdates(_0x220845[_0x4a40('0x55')],null))['then'](respondWithResult(_0x177bdf,null))[_0x4a40('0x4e')](handleError(_0x177bdf,null));};exports[_0x4a40('0x30')]=function(_0x291c1d,_0x242955){return db[_0x4a40('0x37')][_0x4a40('0x53')]({'where':{'id':_0x291c1d[_0x4a40('0x50')]['id']}})[_0x4a40('0x2f')](handleEntityNotFound(_0x242955,null))['then'](removeEntity(_0x242955,null))['catch'](handleError(_0x242955,null));};exports['describe']=function(_0x582c87,_0x35cf52){return db['ChatInternalMessage'][_0x4a40('0x56')]()[_0x4a40('0x2f')](respondWithResult(_0x35cf52,null))['catch'](handleError(_0x35cf52,null));};function wrapUser(_0x5c912f){return function(_0x532c12){var _0x5070b8=_0x5c912f['get']({'plain':!![]});_0x5070b8[_0x4a40('0x57')]=[];if(_0x532c12){_0x5070b8['lastMessageAt']=_0x532c12[_0x4a40('0x58')];_0x5070b8['lastMessage']=_0x532c12;}else{_0x5070b8[_0x4a40('0x59')]=moment(0x0)[_0x4a40('0x5a')](_0x4a40('0x5b'));_0x5070b8[_0x4a40('0x5c')]={};}return _0x5070b8;};}exports[_0x4a40('0x5d')]=function(_0x282683,_0x4fbb50,_0x4b00ab){var _0x5897f4=[];return db[_0x4a40('0x5e')][_0x4a40('0x5f')]({'where':{'role':[_0x4a40('0x60'),_0x4a40('0x61'),_0x4a40('0x62')]},'attributes':['id','fullname',_0x4a40('0x33'),'role',_0x4a40('0x63'),_0x4a40('0x64'),'online',_0x4a40('0x65'),'allowmessenger','showWebBar'],'order':qs[_0x4a40('0x44')]('-online'),'include':[{'model':db['VoiceQueue'],'as':_0x4a40('0x66'),'attributes':['id',_0x4a40('0x33'),_0x4a40('0x3a')],'through':{'attributes':[]}}]})[_0x4a40('0x2f')](function(_0x280aff){if(_0x280aff){var _0x3d2773=_0x282683[_0x4a40('0x62')][_0x4a40('0x67')]({'plain':!![]});if(!_0x3d2773)throw new Error(_0x4a40('0x68'));if(_0x3d2773['role']===_0x4a40('0x62')){return db[_0x4a40('0x69')][_0x4a40('0x53')]({'where':{'name':_0x4a40('0x6a'),'userProfileId':_0x3d2773[_0x4a40('0x6b')]},'raw':!![]})['then'](function(_0x4a7d29){if(_0x4a7d29){if(_0x4a7d29['autoAssociation']===0x0){return db[_0x4a40('0x6c')][_0x4a40('0x5f')]({'where':{'sectionId':_0x4a7d29['id']},'raw':!![]})[_0x4a40('0x2f')](function(_0x55cf17){var _0x564015=[];if(_[_0x4a40('0x6d')](_0x55cf17)){_0x564015=_[_0x4a40('0x48')](_0x280aff,function(_0x5a3090){if(_0x5a3090[_0x4a40('0x6e')]!==_0x4a40('0x60')){return _0x5a3090;}});return _0x564015;}else{for(var _0x646b6e=0x0;_0x646b6e<_0x280aff[_0x4a40('0x51')];_0x646b6e++){var _0x28bbf8=_0x280aff[_0x646b6e];if(_0x28bbf8[_0x4a40('0x6e')]===_0x4a40('0x60')){var _0xad829f=_[_0x4a40('0x53')](_0x55cf17,function(_0x44c001){return _0x44c001[_0x4a40('0x6f')]===_0x28bbf8['id'];});if(_0xad829f)_0x564015[_0x4a40('0x70')](_0x28bbf8);}else{_0x564015[_0x4a40('0x70')](_0x28bbf8);}}return _0x564015;}});}else{return _0x280aff;}}else{var _0x17bbc1=_['filter'](_0x280aff,function(_0x40d2f2){if(_0x40d2f2[_0x4a40('0x6e')]!==_0x4a40('0x60')){return _0x40d2f2;}});return _0x17bbc1;}});}else{return _0x280aff;}}})[_0x4a40('0x2f')](function(_0x401f08){var _0xe10c13=[];if(_0x401f08){_0x5897f4=_0x401f08;for(var _0x157f99=0x0;_0x157f99<_0x401f08['length'];_0x157f99+=0x1){_0x5897f4[_0x157f99][_0x4a40('0x57')]=[];_0xe10c13['push'](db[_0x4a40('0x37')][_0x4a40('0x53')]({'where':{'FromId':[_0x282683['user']['id'],_0x401f08[_0x157f99]['id']],'ToId':[_0x282683['user']['id'],_0x401f08[_0x157f99]['id']],'ChatGroupId':null},'attributes':['id','createdAt',_0x4a40('0x71'),_0x4a40('0x72'),_0x4a40('0x73'),_0x4a40('0x55')],'order':qs[_0x4a40('0x44')]('-createdAt'),'limit':0x1,'offset':0x0,'raw':!![]})['then'](wrapUser(_0x401f08[_0x157f99])));}return BPromise[_0x4a40('0x74')](_0xe10c13);}return[];})[_0x4a40('0x2f')](function(_0x59cc84){return{'rows':_0x59cc84,'count':_0x59cc84[_0x4a40('0x51')]};})[_0x4a40('0x2f')](respondWithResult(_0x4fbb50,null))[_0x4a40('0x4e')](handleError(_0x4fbb50,null));};