20fc35ce3ee77527435373a5b5a32f7d693c1744
[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 _0xc4d8=['ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','../../config/license/util','redis','defaults','socket.io-emitter','./chatInternalMessage.socket','sendStatus','end','status','json','offset','undefined','limit','count','set','Content-Range','apply','save','update','destroy','then','error','stack','name','send','map','ChatInternalMessage','fieldName','type','key','query','keys','filters','intersection','model','fields','attributes','length','hasOwnProperty','sort','where','pick','filter','VIRTUAL','merge','options','includeAll','include','findAll','catch','show','params','rawAttributes','create','body','find','describe','get','messages','lastMessageAt','lastMessage','format','YYYY-MM-DD\x20HH:mm:ss','getUsers','User','admin','user','role','internal','online','lastLoginAt','showWebBar','-online','VoiceQueue','VoiceQueues','Unable\x20to\x20retrieve\x20the\x20current\x20user','Agents','userProfileId','autoAssociation','UserProfileResource','agent','resourceId','push','createdAt','ToId','read','-createdAt','all','rimraf','zip-dir','mustache','util','path','sox','to-csv'];(function(_0x46b7ed,_0x211e80){var _0x25ffb4=function(_0x95e398){while(--_0x95e398){_0x46b7ed['push'](_0x46b7ed['shift']());}};_0x25ffb4(++_0x211e80);}(_0xc4d8,0x1b1));var _0x8c4d=function(_0x1d9aa0,_0x272488){_0x1d9aa0=_0x1d9aa0-0x0;var _0x226868=_0xc4d8[_0x1d9aa0];return _0x226868;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x8c4d('0x0'));var zipdir=require(_0x8c4d('0x1'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0x8c4d('0x2'));var util=require(_0x8c4d('0x3'));var path=require(_0x8c4d('0x4'));var sox=require(_0x8c4d('0x5'));var csv=require(_0x8c4d('0x6'));var ejs=require(_0x8c4d('0x7'));var fs=require('fs');var fs_extra=require(_0x8c4d('0x8'));var _=require(_0x8c4d('0x9'));var squel=require(_0x8c4d('0xa'));var crypto=require(_0x8c4d('0xb'));var jsforce=require(_0x8c4d('0xc'));var deskjs=require(_0x8c4d('0xd'));var toCsv=require(_0x8c4d('0x6'));var querystring=require(_0x8c4d('0xe'));var Papa=require('papaparse');var Redis=require(_0x8c4d('0xf'));var authService=require(_0x8c4d('0x10'));var qs=require(_0x8c4d('0x11'));var as=require(_0x8c4d('0x12'));var hardwareService=require(_0x8c4d('0x13'));var logger=require(_0x8c4d('0x14'))(_0x8c4d('0x15'));var utils=require('../../config/utils');var config=require(_0x8c4d('0x16'));var licenseUtil=require(_0x8c4d('0x17'));var db=require('../../mysqldb')['db'];config[_0x8c4d('0x18')]=_[_0x8c4d('0x19')](config['redis'],{'host':'localhost','port':0x18eb});var socket=require(_0x8c4d('0x1a'))(new Redis(config[_0x8c4d('0x18')]));require(_0x8c4d('0x1b'))['register'](socket);function respondWithStatusCode(_0x49180d,_0x23e94a){_0x23e94a=_0x23e94a||0xcc;return function(_0x3731b6){if(_0x3731b6){return _0x49180d[_0x8c4d('0x1c')](_0x23e94a);}return _0x49180d['status'](_0x23e94a)[_0x8c4d('0x1d')]();};}function respondWithResult(_0x317e94,_0x14fe60){_0x14fe60=_0x14fe60||0xc8;return function(_0x33d69d){if(_0x33d69d){return _0x317e94[_0x8c4d('0x1e')](_0x14fe60)[_0x8c4d('0x1f')](_0x33d69d);}};}function respondWithFilteredResult(_0x5bfaf8,_0x29e9ee){return function(_0x3d2f6c){if(_0x3d2f6c){var _0x4745ac=typeof _0x29e9ee[_0x8c4d('0x20')]===_0x8c4d('0x21')&&typeof _0x29e9ee[_0x8c4d('0x22')]===_0x8c4d('0x21');var _0x498fa8=_0x3d2f6c[_0x8c4d('0x23')];var _0xfdcd45=_0x4745ac?0x0:_0x29e9ee[_0x8c4d('0x20')];var _0x1169a0=_0x4745ac?_0x3d2f6c[_0x8c4d('0x23')]:_0x29e9ee[_0x8c4d('0x20')]+_0x29e9ee[_0x8c4d('0x22')];var _0x52bfcb;if(_0x1169a0>=_0x498fa8){_0x1169a0=_0x498fa8;_0x52bfcb=0xc8;}else{_0x52bfcb=0xce;}_0x5bfaf8['status'](_0x52bfcb);return _0x5bfaf8[_0x8c4d('0x24')](_0x8c4d('0x25'),_0xfdcd45+'-'+_0x1169a0+'/'+_0x498fa8)[_0x8c4d('0x1f')](_0x3d2f6c);}return null;};}function patchUpdates(_0x272d6b){return function(_0x5ef144){try{jsonpatch[_0x8c4d('0x26')](_0x5ef144,_0x272d6b,!![]);}catch(_0x5ca719){return BPromise['reject'](_0x5ca719);}return _0x5ef144[_0x8c4d('0x27')]();};}function saveUpdates(_0x4b5466,_0x59dc1e){return function(_0x481522){if(_0x481522){return _0x481522[_0x8c4d('0x28')](_0x4b5466)['then'](function(_0x5a7df3){return _0x5a7df3;});}return null;};}function removeEntity(_0x39bfbe,_0x28ac94){return function(_0x2b4dac){if(_0x2b4dac){return _0x2b4dac[_0x8c4d('0x29')]()[_0x8c4d('0x2a')](function(){_0x39bfbe['status'](0xcc)[_0x8c4d('0x1d')]();});}};}function handleEntityNotFound(_0x489ae3,_0x235006){return function(_0x37a5f8){if(!_0x37a5f8){_0x489ae3[_0x8c4d('0x1c')](0x194);}return _0x37a5f8;};}function handleError(_0x26ba4a,_0x1d38a7){_0x1d38a7=_0x1d38a7||0x1f4;return function(_0x3db10a){logger[_0x8c4d('0x2b')](_0x3db10a[_0x8c4d('0x2c')]);if(_0x3db10a[_0x8c4d('0x2d')]){delete _0x3db10a['name'];}_0x26ba4a[_0x8c4d('0x1e')](_0x1d38a7)[_0x8c4d('0x2e')](_0x3db10a);};}exports['index']=function(_0x358f56,_0xee1de2){var _0xa013cf={},_0x17bbd8={},_0x92e7ce={'count':0x0,'rows':[]};var _0x144a0a=_[_0x8c4d('0x2f')](db[_0x8c4d('0x30')]['rawAttributes'],function(_0x3fd483){return{'name':_0x3fd483[_0x8c4d('0x31')],'type':_0x3fd483[_0x8c4d('0x32')][_0x8c4d('0x33')]};});_0x17bbd8['model']=_[_0x8c4d('0x2f')](_0x144a0a,_0x8c4d('0x2d'));_0x17bbd8[_0x8c4d('0x34')]=_[_0x8c4d('0x35')](_0x358f56[_0x8c4d('0x34')]);_0x17bbd8[_0x8c4d('0x36')]=_[_0x8c4d('0x37')](_0x17bbd8['model'],_0x17bbd8[_0x8c4d('0x34')]);_0xa013cf['attributes']=_[_0x8c4d('0x37')](_0x17bbd8[_0x8c4d('0x38')],qs[_0x8c4d('0x39')](_0x358f56['query'][_0x8c4d('0x39')]));_0xa013cf[_0x8c4d('0x3a')]=_0xa013cf[_0x8c4d('0x3a')][_0x8c4d('0x3b')]?_0xa013cf[_0x8c4d('0x3a')]:_0x17bbd8[_0x8c4d('0x38')];if(!_0x358f56['query'][_0x8c4d('0x3c')]('nolimit')){_0xa013cf[_0x8c4d('0x22')]=qs['limit'](_0x358f56[_0x8c4d('0x34')][_0x8c4d('0x22')]);_0xa013cf[_0x8c4d('0x20')]=qs[_0x8c4d('0x20')](_0x358f56['query']['offset']);}_0xa013cf['order']=qs[_0x8c4d('0x3d')](_0x358f56[_0x8c4d('0x34')][_0x8c4d('0x3d')]);_0xa013cf[_0x8c4d('0x3e')]=qs[_0x8c4d('0x36')](_[_0x8c4d('0x3f')](_0x358f56[_0x8c4d('0x34')],_0x17bbd8[_0x8c4d('0x36')]),_0x144a0a);if(_0x358f56['query'][_0x8c4d('0x40')]){_0xa013cf[_0x8c4d('0x3e')]=_['merge'](_0xa013cf[_0x8c4d('0x3e')],{'$or':_['map'](_0x144a0a,function(_0x4087e6){if(_0x4087e6[_0x8c4d('0x32')]!==_0x8c4d('0x41')){var _0x11b8c6={};_0x11b8c6[_0x4087e6[_0x8c4d('0x2d')]]={'$like':'%'+_0x358f56[_0x8c4d('0x34')][_0x8c4d('0x40')]+'%'};return _0x11b8c6;}})});}_0xa013cf=_[_0x8c4d('0x42')]({},_0xa013cf,_0x358f56[_0x8c4d('0x43')]);var _0xf3ecda={'where':_0xa013cf[_0x8c4d('0x3e')]};return db[_0x8c4d('0x30')][_0x8c4d('0x23')](_0xf3ecda)[_0x8c4d('0x2a')](function(_0x2f28e7){_0x92e7ce[_0x8c4d('0x23')]=_0x2f28e7;if(_0x358f56[_0x8c4d('0x34')][_0x8c4d('0x44')]){_0xa013cf[_0x8c4d('0x45')]=[{'all':!![]}];}return db['ChatInternalMessage'][_0x8c4d('0x46')](_0xa013cf);})[_0x8c4d('0x2a')](function(_0x1964ef){_0x92e7ce['rows']=_0x1964ef;return _0x92e7ce;})[_0x8c4d('0x2a')](respondWithFilteredResult(_0xee1de2,_0xa013cf))[_0x8c4d('0x47')](handleError(_0xee1de2,null));};exports[_0x8c4d('0x48')]=function(_0x1d6bdd,_0x3fe985){var _0x558c29={'raw':!![],'where':{'id':_0x1d6bdd[_0x8c4d('0x49')]['id']}},_0x444bb2={};_0x444bb2[_0x8c4d('0x38')]=_['keys'](db['ChatInternalMessage'][_0x8c4d('0x4a')]);_0x444bb2[_0x8c4d('0x34')]=_['keys'](_0x1d6bdd[_0x8c4d('0x34')]);_0x444bb2[_0x8c4d('0x36')]=_[_0x8c4d('0x37')](_0x444bb2[_0x8c4d('0x38')],_0x444bb2['query']);_0x558c29[_0x8c4d('0x3a')]=_[_0x8c4d('0x37')](_0x444bb2[_0x8c4d('0x38')],qs['fields'](_0x1d6bdd[_0x8c4d('0x34')][_0x8c4d('0x39')]));_0x558c29[_0x8c4d('0x3a')]=_0x558c29[_0x8c4d('0x3a')][_0x8c4d('0x3b')]?_0x558c29['attributes']:_0x444bb2[_0x8c4d('0x38')];if(_0x1d6bdd[_0x8c4d('0x34')]['includeAll']){_0x558c29['include']=[{'all':!![]}];}_0x558c29=_[_0x8c4d('0x42')]({},_0x558c29,_0x1d6bdd[_0x8c4d('0x43')]);return db[_0x8c4d('0x30')]['find'](_0x558c29)[_0x8c4d('0x2a')](handleEntityNotFound(_0x3fe985,null))[_0x8c4d('0x2a')](respondWithResult(_0x3fe985,null))['catch'](handleError(_0x3fe985,null));};exports[_0x8c4d('0x4b')]=function(_0x21b5e2,_0x10a8fc){return db[_0x8c4d('0x30')]['create'](_0x21b5e2[_0x8c4d('0x4c')],{})[_0x8c4d('0x2a')](respondWithResult(_0x10a8fc,0xc9))['catch'](handleError(_0x10a8fc,null));};exports[_0x8c4d('0x28')]=function(_0x2c1152,_0x394719){if(_0x2c1152[_0x8c4d('0x4c')]['id']){delete _0x2c1152[_0x8c4d('0x4c')]['id'];}return db[_0x8c4d('0x30')][_0x8c4d('0x4d')]({'where':{'id':_0x2c1152[_0x8c4d('0x49')]['id']}})[_0x8c4d('0x2a')](handleEntityNotFound(_0x394719,null))[_0x8c4d('0x2a')](saveUpdates(_0x2c1152[_0x8c4d('0x4c')],null))[_0x8c4d('0x2a')](respondWithResult(_0x394719,null))[_0x8c4d('0x47')](handleError(_0x394719,null));};exports[_0x8c4d('0x29')]=function(_0x1137c5,_0x296089){return db[_0x8c4d('0x30')][_0x8c4d('0x4d')]({'where':{'id':_0x1137c5['params']['id']}})['then'](handleEntityNotFound(_0x296089,null))[_0x8c4d('0x2a')](removeEntity(_0x296089,null))[_0x8c4d('0x47')](handleError(_0x296089,null));};exports[_0x8c4d('0x4e')]=function(_0x3ac64e,_0x1a054e){return db[_0x8c4d('0x30')][_0x8c4d('0x4e')]()[_0x8c4d('0x2a')](respondWithResult(_0x1a054e,null))[_0x8c4d('0x47')](handleError(_0x1a054e,null));};function wrapUser(_0xc6f559){return function(_0x378bf4){var _0x2cd203=_0xc6f559[_0x8c4d('0x4f')]({'plain':!![]});_0x2cd203[_0x8c4d('0x50')]=[];if(_0x378bf4){_0x2cd203[_0x8c4d('0x51')]=_0x378bf4['createdAt'];_0x2cd203[_0x8c4d('0x52')]=_0x378bf4;}else{_0x2cd203[_0x8c4d('0x51')]=moment(0x0)[_0x8c4d('0x53')](_0x8c4d('0x54'));_0x2cd203['lastMessage']={};}return _0x2cd203;};}exports[_0x8c4d('0x55')]=function(_0x23e8b7,_0x531d13,_0x48b450){var _0x976764=[];return db[_0x8c4d('0x56')]['findAll']({'where':{'role':['agent',_0x8c4d('0x57'),_0x8c4d('0x58')]},'attributes':['id','fullname',_0x8c4d('0x2d'),_0x8c4d('0x59'),'userpic',_0x8c4d('0x5a'),_0x8c4d('0x5b'),_0x8c4d('0x5c'),'allowmessenger',_0x8c4d('0x5d')],'order':qs['sort'](_0x8c4d('0x5e')),'include':[{'model':db[_0x8c4d('0x5f')],'as':_0x8c4d('0x60'),'attributes':['id',_0x8c4d('0x2d'),'type'],'through':{'attributes':[]}}]})['then'](function(_0x27b40a){if(_0x27b40a){var _0x8ae33f=_0x23e8b7['user'][_0x8c4d('0x4f')]({'plain':!![]});if(!_0x8ae33f)throw new Error(_0x8c4d('0x61'));if(_0x8ae33f[_0x8c4d('0x59')]===_0x8c4d('0x58')){return db['UserProfileSection'][_0x8c4d('0x4d')]({'where':{'name':_0x8c4d('0x62'),'userProfileId':_0x8ae33f[_0x8c4d('0x63')]},'raw':!![]})['then'](function(_0x2c7d64){if(_0x2c7d64){if(_0x2c7d64[_0x8c4d('0x64')]===0x0){return db[_0x8c4d('0x65')][_0x8c4d('0x46')]({'where':{'sectionId':_0x2c7d64['id']},'raw':!![]})[_0x8c4d('0x2a')](function(_0x1fb952){var _0x32b60c=[];if(_['isEmpty'](_0x1fb952)){_0x32b60c=_[_0x8c4d('0x40')](_0x27b40a,function(_0x3e9bba){if(_0x3e9bba['role']!==_0x8c4d('0x66')){return _0x3e9bba;}});return _0x32b60c;}else{for(var _0x3b5d88=0x0;_0x3b5d88<_0x27b40a[_0x8c4d('0x3b')];_0x3b5d88++){var _0xdf04be=_0x27b40a[_0x3b5d88];if(_0xdf04be[_0x8c4d('0x59')]==='agent'){var _0x53d811=_['find'](_0x1fb952,function(_0x3f53a6){return _0x3f53a6[_0x8c4d('0x67')]===_0xdf04be['id'];});if(_0x53d811)_0x32b60c[_0x8c4d('0x68')](_0xdf04be);}else{_0x32b60c[_0x8c4d('0x68')](_0xdf04be);}}return _0x32b60c;}});}else{return _0x27b40a;}}else{var _0x382741=_[_0x8c4d('0x40')](_0x27b40a,function(_0x37d65a){if(_0x37d65a['role']!==_0x8c4d('0x66')){return _0x37d65a;}});return _0x382741;}});}else{return _0x27b40a;}}})[_0x8c4d('0x2a')](function(_0x1987f2){var _0x46ac4d=[];if(_0x1987f2){_0x976764=_0x1987f2;for(var _0x4d3987=0x0;_0x4d3987<_0x1987f2[_0x8c4d('0x3b')];_0x4d3987+=0x1){_0x976764[_0x4d3987]['messages']=[];_0x46ac4d['push'](db[_0x8c4d('0x30')]['find']({'where':{'FromId':[_0x23e8b7[_0x8c4d('0x58')]['id'],_0x1987f2[_0x4d3987]['id']],'ToId':[_0x23e8b7[_0x8c4d('0x58')]['id'],_0x1987f2[_0x4d3987]['id']],'ChatGroupId':null},'attributes':['id',_0x8c4d('0x69'),'FromId',_0x8c4d('0x6a'),_0x8c4d('0x6b'),_0x8c4d('0x4c')],'order':qs[_0x8c4d('0x3d')](_0x8c4d('0x6c')),'limit':0x1,'offset':0x0,'raw':!![]})[_0x8c4d('0x2a')](wrapUser(_0x1987f2[_0x4d3987])));}return BPromise[_0x8c4d('0x6d')](_0x46ac4d);}return[];})[_0x8c4d('0x2a')](function(_0x1e655b){return{'rows':_0x1e655b,'count':_0x1e655b['length']};})[_0x8c4d('0x2a')](respondWithResult(_0x531d13,null))['catch'](handleError(_0x531d13,null));};