Built motion from commit 5ae82ce5.|2.6.7
[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 _0xe687=['eml-format','rimraf','zip-dir','mustache','util','path','sox','to-csv','ejs','lodash','crypto','desk.js','querystring','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','redis','localhost','socket.io-emitter','./chatInternalMessage.socket','register','status','end','json','offset','undefined','count','Content-Range','apply','reject','save','update','then','destroy','sendStatus','error','name','send','index','map','ChatInternalMessage','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','attributes','fields','hasOwnProperty','nolimit','limit','order','sort','where','merge','options','includeAll','include','findAll','rows','catch','show','params','length','find','create','body','describe','get','messages','createdAt','format','YYYY-MM-DD\x20HH:mm:ss','lastMessage','getUsers','agent','admin','user','fullname','role','userpic','internal','online','allowmessenger','showWebBar','-online','VoiceQueue','VoiceQueues','Unable\x20to\x20retrieve\x20the\x20current\x20user','Agents','userProfileId','autoAssociation','filter','resourceId','push','FromId','ToId','read','-createdAt','all'];(function(_0x15c667,_0x306a08){var _0x540e10=function(_0x48e90e){while(--_0x48e90e){_0x15c667['push'](_0x15c667['shift']());}};_0x540e10(++_0x306a08);}(_0xe687,0xdc));var _0x7e68=function(_0x4637cd,_0x26a717){_0x4637cd=_0x4637cd-0x0;var _0x4fa2e6=_0xe687[_0x4637cd];return _0x4fa2e6;};'use strict';var emlformat=require(_0x7e68('0x0'));var rimraf=require(_0x7e68('0x1'));var zipdir=require(_0x7e68('0x2'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0x7e68('0x3'));var util=require(_0x7e68('0x4'));var path=require(_0x7e68('0x5'));var sox=require(_0x7e68('0x6'));var csv=require(_0x7e68('0x7'));var ejs=require(_0x7e68('0x8'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x7e68('0x9'));var squel=require('squel');var crypto=require(_0x7e68('0xa'));var jsforce=require('jsforce');var deskjs=require(_0x7e68('0xb'));var toCsv=require(_0x7e68('0x7'));var querystring=require(_0x7e68('0xc'));var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0x7e68('0xd'));var qs=require(_0x7e68('0xe'));var as=require(_0x7e68('0xf'));var hardwareService=require(_0x7e68('0x10'));var logger=require(_0x7e68('0x11'))(_0x7e68('0x12'));var utils=require(_0x7e68('0x13'));var config=require(_0x7e68('0x14'));var licenseUtil=require('../../config/license/util');var db=require(_0x7e68('0x15'))['db'];config[_0x7e68('0x16')]=_['defaults'](config[_0x7e68('0x16')],{'host':_0x7e68('0x17'),'port':0x18eb});var socket=require(_0x7e68('0x18'))(new Redis(config[_0x7e68('0x16')]));require(_0x7e68('0x19'))[_0x7e68('0x1a')](socket);function respondWithStatusCode(_0x2952da,_0x1cb50c){_0x1cb50c=_0x1cb50c||0xcc;return function(_0x515c00){if(_0x515c00){return _0x2952da['sendStatus'](_0x1cb50c);}return _0x2952da[_0x7e68('0x1b')](_0x1cb50c)[_0x7e68('0x1c')]();};}function respondWithResult(_0x1d7020,_0x2c581b){_0x2c581b=_0x2c581b||0xc8;return function(_0x4ef9a2){if(_0x4ef9a2){return _0x1d7020[_0x7e68('0x1b')](_0x2c581b)[_0x7e68('0x1d')](_0x4ef9a2);}};}function respondWithFilteredResult(_0x187fa4,_0xbdb84a){return function(_0x14f49e){if(_0x14f49e){var _0xca7e1c=typeof _0xbdb84a[_0x7e68('0x1e')]==='undefined'&&typeof _0xbdb84a['limit']===_0x7e68('0x1f');var _0x412621=_0x14f49e['count'];var _0x455321=_0xca7e1c?0x0:_0xbdb84a['offset'];var _0x1469c5=_0xca7e1c?_0x14f49e[_0x7e68('0x20')]:_0xbdb84a[_0x7e68('0x1e')]+_0xbdb84a['limit'];var _0x491a64;if(_0x1469c5>=_0x412621){_0x1469c5=_0x412621;_0x491a64=0xc8;}else{_0x491a64=0xce;}_0x187fa4[_0x7e68('0x1b')](_0x491a64);return _0x187fa4['set'](_0x7e68('0x21'),_0x455321+'-'+_0x1469c5+'/'+_0x412621)[_0x7e68('0x1d')](_0x14f49e);}return null;};}function patchUpdates(_0x34f46b){return function(_0x75abe1){try{jsonpatch[_0x7e68('0x22')](_0x75abe1,_0x34f46b,!![]);}catch(_0x4ccdc6){return BPromise[_0x7e68('0x23')](_0x4ccdc6);}return _0x75abe1[_0x7e68('0x24')]();};}function saveUpdates(_0x208d3e,_0x574907){return function(_0x5534b5){if(_0x5534b5){return _0x5534b5[_0x7e68('0x25')](_0x208d3e)[_0x7e68('0x26')](function(_0x55d013){return _0x55d013;});}return null;};}function removeEntity(_0x2c4217,_0x7b5b28){return function(_0x399e3a){if(_0x399e3a){return _0x399e3a[_0x7e68('0x27')]()[_0x7e68('0x26')](function(){_0x2c4217[_0x7e68('0x1b')](0xcc)[_0x7e68('0x1c')]();});}};}function handleEntityNotFound(_0x1c79f5,_0x14526a){return function(_0x20d5d0){if(!_0x20d5d0){_0x1c79f5[_0x7e68('0x28')](0x194);}return _0x20d5d0;};}function handleError(_0x347a88,_0x4bcca6){_0x4bcca6=_0x4bcca6||0x1f4;return function(_0x88f291){logger[_0x7e68('0x29')](_0x88f291['stack']);if(_0x88f291[_0x7e68('0x2a')]){delete _0x88f291[_0x7e68('0x2a')];}_0x347a88['status'](_0x4bcca6)[_0x7e68('0x2b')](_0x88f291);};}exports[_0x7e68('0x2c')]=function(_0x5dd517,_0x2c07a1){var _0x1ca674={},_0x556dc1={},_0x1a4d5a={'count':0x0,'rows':[]};var _0x45effd=_[_0x7e68('0x2d')](db[_0x7e68('0x2e')][_0x7e68('0x2f')],function(_0x5abe81){return{'name':_0x5abe81[_0x7e68('0x30')],'type':_0x5abe81[_0x7e68('0x31')][_0x7e68('0x32')]};});_0x556dc1[_0x7e68('0x33')]=_['map'](_0x45effd,_0x7e68('0x2a'));_0x556dc1[_0x7e68('0x34')]=_[_0x7e68('0x35')](_0x5dd517[_0x7e68('0x34')]);_0x556dc1[_0x7e68('0x36')]=_[_0x7e68('0x37')](_0x556dc1[_0x7e68('0x33')],_0x556dc1[_0x7e68('0x34')]);_0x1ca674[_0x7e68('0x38')]=_[_0x7e68('0x37')](_0x556dc1[_0x7e68('0x33')],qs[_0x7e68('0x39')](_0x5dd517[_0x7e68('0x34')]['fields']));_0x1ca674['attributes']=_0x1ca674[_0x7e68('0x38')]['length']?_0x1ca674['attributes']:_0x556dc1[_0x7e68('0x33')];if(!_0x5dd517[_0x7e68('0x34')][_0x7e68('0x3a')](_0x7e68('0x3b'))){_0x1ca674['limit']=qs[_0x7e68('0x3c')](_0x5dd517[_0x7e68('0x34')][_0x7e68('0x3c')]);_0x1ca674[_0x7e68('0x1e')]=qs['offset'](_0x5dd517['query'][_0x7e68('0x1e')]);}_0x1ca674[_0x7e68('0x3d')]=qs[_0x7e68('0x3e')](_0x5dd517[_0x7e68('0x34')][_0x7e68('0x3e')]);_0x1ca674[_0x7e68('0x3f')]=qs['filters'](_['pick'](_0x5dd517[_0x7e68('0x34')],_0x556dc1[_0x7e68('0x36')]),_0x45effd);if(_0x5dd517[_0x7e68('0x34')]['filter']){_0x1ca674[_0x7e68('0x3f')]=_[_0x7e68('0x40')](_0x1ca674[_0x7e68('0x3f')],{'$or':_[_0x7e68('0x2d')](_0x45effd,function(_0x4490d4){if(_0x4490d4[_0x7e68('0x31')]!=='VIRTUAL'){var _0x490564={};_0x490564[_0x4490d4[_0x7e68('0x2a')]]={'$like':'%'+_0x5dd517[_0x7e68('0x34')]['filter']+'%'};return _0x490564;}})});}_0x1ca674=_[_0x7e68('0x40')]({},_0x1ca674,_0x5dd517[_0x7e68('0x41')]);var _0x36e310={'where':_0x1ca674[_0x7e68('0x3f')]};return db[_0x7e68('0x2e')][_0x7e68('0x20')](_0x36e310)[_0x7e68('0x26')](function(_0x48537f){_0x1a4d5a[_0x7e68('0x20')]=_0x48537f;if(_0x5dd517['query'][_0x7e68('0x42')]){_0x1ca674[_0x7e68('0x43')]=[{'all':!![]}];}return db['ChatInternalMessage'][_0x7e68('0x44')](_0x1ca674);})['then'](function(_0x40e201){_0x1a4d5a[_0x7e68('0x45')]=_0x40e201;return _0x1a4d5a;})[_0x7e68('0x26')](respondWithFilteredResult(_0x2c07a1,_0x1ca674))[_0x7e68('0x46')](handleError(_0x2c07a1,null));};exports[_0x7e68('0x47')]=function(_0x5f1f69,_0x3df0ad){var _0x12af1f={'raw':!![],'where':{'id':_0x5f1f69[_0x7e68('0x48')]['id']}},_0x47b5f2={};_0x47b5f2['model']=_[_0x7e68('0x35')](db[_0x7e68('0x2e')][_0x7e68('0x2f')]);_0x47b5f2[_0x7e68('0x34')]=_[_0x7e68('0x35')](_0x5f1f69['query']);_0x47b5f2[_0x7e68('0x36')]=_[_0x7e68('0x37')](_0x47b5f2[_0x7e68('0x33')],_0x47b5f2[_0x7e68('0x34')]);_0x12af1f[_0x7e68('0x38')]=_[_0x7e68('0x37')](_0x47b5f2[_0x7e68('0x33')],qs[_0x7e68('0x39')](_0x5f1f69[_0x7e68('0x34')][_0x7e68('0x39')]));_0x12af1f[_0x7e68('0x38')]=_0x12af1f[_0x7e68('0x38')][_0x7e68('0x49')]?_0x12af1f['attributes']:_0x47b5f2[_0x7e68('0x33')];if(_0x5f1f69[_0x7e68('0x34')][_0x7e68('0x42')]){_0x12af1f['include']=[{'all':!![]}];}_0x12af1f=_[_0x7e68('0x40')]({},_0x12af1f,_0x5f1f69[_0x7e68('0x41')]);return db[_0x7e68('0x2e')][_0x7e68('0x4a')](_0x12af1f)[_0x7e68('0x26')](handleEntityNotFound(_0x3df0ad,null))[_0x7e68('0x26')](respondWithResult(_0x3df0ad,null))['catch'](handleError(_0x3df0ad,null));};exports[_0x7e68('0x4b')]=function(_0x406867,_0x5991e9){return db[_0x7e68('0x2e')][_0x7e68('0x4b')](_0x406867[_0x7e68('0x4c')],{})[_0x7e68('0x26')](respondWithResult(_0x5991e9,0xc9))['catch'](handleError(_0x5991e9,null));};exports[_0x7e68('0x25')]=function(_0x54e69f,_0x41b3a1){if(_0x54e69f[_0x7e68('0x4c')]['id']){delete _0x54e69f[_0x7e68('0x4c')]['id'];}return db[_0x7e68('0x2e')][_0x7e68('0x4a')]({'where':{'id':_0x54e69f['params']['id']}})[_0x7e68('0x26')](handleEntityNotFound(_0x41b3a1,null))[_0x7e68('0x26')](saveUpdates(_0x54e69f[_0x7e68('0x4c')],null))[_0x7e68('0x26')](respondWithResult(_0x41b3a1,null))['catch'](handleError(_0x41b3a1,null));};exports[_0x7e68('0x27')]=function(_0x45df03,_0x502c20){return db[_0x7e68('0x2e')]['find']({'where':{'id':_0x45df03[_0x7e68('0x48')]['id']}})[_0x7e68('0x26')](handleEntityNotFound(_0x502c20,null))[_0x7e68('0x26')](removeEntity(_0x502c20,null))[_0x7e68('0x46')](handleError(_0x502c20,null));};exports[_0x7e68('0x4d')]=function(_0x21575d,_0x2ce3d1){return db[_0x7e68('0x2e')]['describe']()['then'](respondWithResult(_0x2ce3d1,null))[_0x7e68('0x46')](handleError(_0x2ce3d1,null));};function wrapUser(_0x4cd11f){return function(_0x5cb073){var _0x5a14db=_0x4cd11f[_0x7e68('0x4e')]({'plain':!![]});_0x5a14db[_0x7e68('0x4f')]=[];if(_0x5cb073){_0x5a14db['lastMessageAt']=_0x5cb073[_0x7e68('0x50')];_0x5a14db['lastMessage']=_0x5cb073;}else{_0x5a14db['lastMessageAt']=moment(0x0)[_0x7e68('0x51')](_0x7e68('0x52'));_0x5a14db[_0x7e68('0x53')]={};}return _0x5a14db;};}exports[_0x7e68('0x54')]=function(_0x52994f,_0x46f8b9,_0x34d6fa){var _0x1eddb0=[];return db['User'][_0x7e68('0x44')]({'where':{'role':[_0x7e68('0x55'),_0x7e68('0x56'),_0x7e68('0x57')]},'attributes':['id',_0x7e68('0x58'),_0x7e68('0x2a'),_0x7e68('0x59'),_0x7e68('0x5a'),_0x7e68('0x5b'),_0x7e68('0x5c'),'lastLoginAt',_0x7e68('0x5d'),_0x7e68('0x5e')],'order':qs[_0x7e68('0x3e')](_0x7e68('0x5f')),'include':[{'model':db[_0x7e68('0x60')],'as':_0x7e68('0x61'),'attributes':['id',_0x7e68('0x2a'),'type'],'through':{'attributes':[]}}]})[_0x7e68('0x26')](function(_0x5fab1f){if(_0x5fab1f){var _0x4e99aa=_0x52994f[_0x7e68('0x57')]['get']({'plain':!![]});if(!_0x4e99aa)throw new Error(_0x7e68('0x62'));if(_0x4e99aa[_0x7e68('0x59')]==='user'){return db['UserProfileSection'][_0x7e68('0x4a')]({'where':{'name':_0x7e68('0x63'),'userProfileId':_0x4e99aa[_0x7e68('0x64')]},'raw':!![]})[_0x7e68('0x26')](function(_0x31d34e){if(_0x31d34e){if(_0x31d34e[_0x7e68('0x65')]===0x0){return db['UserProfileResource'][_0x7e68('0x44')]({'where':{'sectionId':_0x31d34e['id']},'raw':!![]})[_0x7e68('0x26')](function(_0x2be70f){var _0x1b07da=[];if(_['isEmpty'](_0x2be70f)){_0x1b07da=_[_0x7e68('0x66')](_0x5fab1f,function(_0x417107){if(_0x417107[_0x7e68('0x59')]!==_0x7e68('0x55')){return _0x417107;}});return _0x1b07da;}else{for(var _0x4b2892=0x0;_0x4b2892<_0x5fab1f[_0x7e68('0x49')];_0x4b2892++){var _0x415d6a=_0x5fab1f[_0x4b2892];if(_0x415d6a[_0x7e68('0x59')]===_0x7e68('0x55')){var _0x3fb430=_[_0x7e68('0x4a')](_0x2be70f,function(_0x23ce15){return _0x23ce15[_0x7e68('0x67')]===_0x415d6a['id'];});if(_0x3fb430)_0x1b07da[_0x7e68('0x68')](_0x415d6a);}else{_0x1b07da[_0x7e68('0x68')](_0x415d6a);}}return _0x1b07da;}});}else{return _0x5fab1f;}}else{var _0x1fadb2=_[_0x7e68('0x66')](_0x5fab1f,function(_0x3b320e){if(_0x3b320e['role']!==_0x7e68('0x55')){return _0x3b320e;}});return _0x1fadb2;}});}else{return _0x5fab1f;}}})[_0x7e68('0x26')](function(_0x239e6b){var _0x2256ac=[];if(_0x239e6b){_0x1eddb0=_0x239e6b;for(var _0x2cfb2e=0x0;_0x2cfb2e<_0x239e6b[_0x7e68('0x49')];_0x2cfb2e+=0x1){_0x1eddb0[_0x2cfb2e]['messages']=[];_0x2256ac[_0x7e68('0x68')](db['ChatInternalMessage']['find']({'where':{'FromId':[_0x52994f[_0x7e68('0x57')]['id'],_0x239e6b[_0x2cfb2e]['id']],'ToId':[_0x52994f[_0x7e68('0x57')]['id'],_0x239e6b[_0x2cfb2e]['id']],'ChatGroupId':null},'attributes':['id',_0x7e68('0x50'),_0x7e68('0x69'),_0x7e68('0x6a'),_0x7e68('0x6b'),_0x7e68('0x4c')],'order':qs[_0x7e68('0x3e')](_0x7e68('0x6c')),'limit':0x1,'offset':0x0,'raw':!![]})[_0x7e68('0x26')](wrapUser(_0x239e6b[_0x2cfb2e])));}return BPromise[_0x7e68('0x6d')](_0x2256ac);}return[];})[_0x7e68('0x26')](function(_0x2daccb){return{'rows':_0x2daccb,'count':_0x2daccb[_0x7e68('0x49')]};})[_0x7e68('0x26')](respondWithResult(_0x46f8b9,null))['catch'](handleError(_0x46f8b9,null));};