Built motion from commit (unavailable).|2.6.0
[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 _0x99b4=['../../config/license/util','../../mysqldb','redis','defaults','localhost','socket.io-emitter','./chatInternalMessage.socket','sendStatus','status','end','json','offset','undefined','count','limit','set','Content-Range','apply','save','then','destroy','error','stack','name','send','index','map','ChatInternalMessage','rawAttributes','fieldName','key','query','filters','model','intersection','fields','attributes','length','hasOwnProperty','order','filter','merge','where','VIRTUAL','include','findAll','rows','catch','show','keys','includeAll','options','create','body','update','find','describe','get','messages','lastMessageAt','lastMessage','format','YYYY-MM-DD\x20HH:mm:ss','User','agent','admin','user','fullname','role','userpic','internal','online','lastLoginAt','allowmessenger','showWebBar','sort','-online','VoiceQueue','VoiceQueues','type','Unable\x20to\x20retrieve\x20the\x20current\x20user','UserProfileSection','Agents','resourceId','push','createdAt','FromId','ToId','read','-createdAt','all','eml-format','fast-json-patch','moment','bluebird','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils'];(function(_0x521929,_0x479be5){var _0x632436=function(_0x288290){while(--_0x288290){_0x521929['push'](_0x521929['shift']());}};_0x632436(++_0x479be5);}(_0x99b4,0x139));var _0x499b=function(_0x314c1f,_0x53f85d){_0x314c1f=_0x314c1f-0x0;var _0x49bcca=_0x99b4[_0x314c1f];return _0x49bcca;};'use strict';var emlformat=require(_0x499b('0x0'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require(_0x499b('0x1'));var rp=require('request-promise');var moment=require(_0x499b('0x2'));var BPromise=require(_0x499b('0x3'));var Mustache=require('mustache');var util=require('util');var path=require('path');var sox=require(_0x499b('0x4'));var csv=require(_0x499b('0x5'));var ejs=require(_0x499b('0x6'));var fs=require('fs');var fs_extra=require(_0x499b('0x7'));var _=require(_0x499b('0x8'));var squel=require(_0x499b('0x9'));var crypto=require(_0x499b('0xa'));var jsforce=require('jsforce');var deskjs=require(_0x499b('0xb'));var toCsv=require(_0x499b('0x5'));var querystring=require(_0x499b('0xc'));var Papa=require('papaparse');var Redis=require(_0x499b('0xd'));var authService=require(_0x499b('0xe'));var qs=require(_0x499b('0xf'));var as=require(_0x499b('0x10'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x499b('0x11'))(_0x499b('0x12'));var utils=require(_0x499b('0x13'));var config=require('../../config/environment');var licenseUtil=require(_0x499b('0x14'));var db=require(_0x499b('0x15'))['db'];config[_0x499b('0x16')]=_[_0x499b('0x17')](config[_0x499b('0x16')],{'host':_0x499b('0x18'),'port':0x18eb});var socket=require(_0x499b('0x19'))(new Redis(config['redis']));require(_0x499b('0x1a'))['register'](socket);function respondWithStatusCode(_0x534609,_0x271827){_0x271827=_0x271827||0xcc;return function(_0x97f704){if(_0x97f704){return _0x534609[_0x499b('0x1b')](_0x271827);}return _0x534609[_0x499b('0x1c')](_0x271827)[_0x499b('0x1d')]();};}function respondWithResult(_0x399f69,_0x911f6f){_0x911f6f=_0x911f6f||0xc8;return function(_0x5b2387){if(_0x5b2387){return _0x399f69[_0x499b('0x1c')](_0x911f6f)[_0x499b('0x1e')](_0x5b2387);}};}function respondWithFilteredResult(_0x186c7a,_0x2888ce){return function(_0x4f6663){if(_0x4f6663){var _0x80e748=typeof _0x2888ce[_0x499b('0x1f')]==='undefined'&&typeof _0x2888ce['limit']===_0x499b('0x20');var _0x3c01d6=_0x4f6663[_0x499b('0x21')];var _0x1d810f=_0x80e748?0x0:_0x2888ce[_0x499b('0x1f')];var _0x17a5aa=_0x80e748?_0x4f6663['count']:_0x2888ce['offset']+_0x2888ce[_0x499b('0x22')];var _0x1849ed;if(_0x17a5aa>=_0x3c01d6){_0x17a5aa=_0x3c01d6;_0x1849ed=0xc8;}else{_0x1849ed=0xce;}_0x186c7a[_0x499b('0x1c')](_0x1849ed);return _0x186c7a[_0x499b('0x23')](_0x499b('0x24'),_0x1d810f+'-'+_0x17a5aa+'/'+_0x3c01d6)['json'](_0x4f6663);}return null;};}function patchUpdates(_0x4895f0){return function(_0x50be4b){try{jsonpatch[_0x499b('0x25')](_0x50be4b,_0x4895f0,!![]);}catch(_0x51205f){return BPromise['reject'](_0x51205f);}return _0x50be4b[_0x499b('0x26')]();};}function saveUpdates(_0x28d649,_0x5d1d99){return function(_0x16f092){if(_0x16f092){return _0x16f092['update'](_0x28d649)[_0x499b('0x27')](function(_0x393319){return _0x393319;});}return null;};}function removeEntity(_0x127c05,_0x25c2c8){return function(_0x3ad9c0){if(_0x3ad9c0){return _0x3ad9c0[_0x499b('0x28')]()[_0x499b('0x27')](function(){_0x127c05[_0x499b('0x1c')](0xcc)['end']();});}};}function handleEntityNotFound(_0x4ad4e0,_0xe1f74e){return function(_0x5426ef){if(!_0x5426ef){_0x4ad4e0['sendStatus'](0x194);}return _0x5426ef;};}function handleError(_0xdb3a71,_0x42bfde){_0x42bfde=_0x42bfde||0x1f4;return function(_0x3e0eb0){logger[_0x499b('0x29')](_0x3e0eb0[_0x499b('0x2a')]);if(_0x3e0eb0[_0x499b('0x2b')]){delete _0x3e0eb0[_0x499b('0x2b')];}_0xdb3a71[_0x499b('0x1c')](_0x42bfde)[_0x499b('0x2c')](_0x3e0eb0);};}exports[_0x499b('0x2d')]=function(_0x57da47,_0x589d01){var _0x4092a5={},_0x2179bc={},_0x250fd8={'count':0x0,'rows':[]};var _0x53bf2b=_[_0x499b('0x2e')](db[_0x499b('0x2f')][_0x499b('0x30')],function(_0x32c7b5){return{'name':_0x32c7b5[_0x499b('0x31')],'type':_0x32c7b5['type'][_0x499b('0x32')]};});_0x2179bc['model']=_['map'](_0x53bf2b,_0x499b('0x2b'));_0x2179bc[_0x499b('0x33')]=_['keys'](_0x57da47[_0x499b('0x33')]);_0x2179bc[_0x499b('0x34')]=_['intersection'](_0x2179bc[_0x499b('0x35')],_0x2179bc[_0x499b('0x33')]);_0x4092a5['attributes']=_[_0x499b('0x36')](_0x2179bc['model'],qs[_0x499b('0x37')](_0x57da47[_0x499b('0x33')][_0x499b('0x37')]));_0x4092a5[_0x499b('0x38')]=_0x4092a5[_0x499b('0x38')][_0x499b('0x39')]?_0x4092a5['attributes']:_0x2179bc[_0x499b('0x35')];if(!_0x57da47[_0x499b('0x33')][_0x499b('0x3a')]('nolimit')){_0x4092a5[_0x499b('0x22')]=qs[_0x499b('0x22')](_0x57da47[_0x499b('0x33')][_0x499b('0x22')]);_0x4092a5[_0x499b('0x1f')]=qs['offset'](_0x57da47[_0x499b('0x33')][_0x499b('0x1f')]);}_0x4092a5[_0x499b('0x3b')]=qs['sort'](_0x57da47[_0x499b('0x33')]['sort']);_0x4092a5['where']=qs[_0x499b('0x34')](_['pick'](_0x57da47[_0x499b('0x33')],_0x2179bc[_0x499b('0x34')]),_0x53bf2b);if(_0x57da47[_0x499b('0x33')][_0x499b('0x3c')]){_0x4092a5['where']=_[_0x499b('0x3d')](_0x4092a5[_0x499b('0x3e')],{'$or':_[_0x499b('0x2e')](_0x53bf2b,function(_0x597cd1){if(_0x597cd1['type']!==_0x499b('0x3f')){var _0x4d04c2={};_0x4d04c2[_0x597cd1[_0x499b('0x2b')]]={'$like':'%'+_0x57da47[_0x499b('0x33')][_0x499b('0x3c')]+'%'};return _0x4d04c2;}})});}_0x4092a5=_[_0x499b('0x3d')]({},_0x4092a5,_0x57da47['options']);var _0x3dfa2c={'where':_0x4092a5['where']};return db[_0x499b('0x2f')][_0x499b('0x21')](_0x3dfa2c)[_0x499b('0x27')](function(_0x361441){_0x250fd8['count']=_0x361441;if(_0x57da47['query']['includeAll']){_0x4092a5[_0x499b('0x40')]=[{'all':!![]}];}return db['ChatInternalMessage'][_0x499b('0x41')](_0x4092a5);})['then'](function(_0x49c85b){_0x250fd8[_0x499b('0x42')]=_0x49c85b;return _0x250fd8;})[_0x499b('0x27')](respondWithFilteredResult(_0x589d01,_0x4092a5))[_0x499b('0x43')](handleError(_0x589d01,null));};exports[_0x499b('0x44')]=function(_0x5402a1,_0x40e87c){var _0x72cdbd={'raw':!![],'where':{'id':_0x5402a1['params']['id']}},_0x2aafdc={};_0x2aafdc[_0x499b('0x35')]=_[_0x499b('0x45')](db[_0x499b('0x2f')][_0x499b('0x30')]);_0x2aafdc[_0x499b('0x33')]=_[_0x499b('0x45')](_0x5402a1[_0x499b('0x33')]);_0x2aafdc[_0x499b('0x34')]=_['intersection'](_0x2aafdc[_0x499b('0x35')],_0x2aafdc[_0x499b('0x33')]);_0x72cdbd[_0x499b('0x38')]=_['intersection'](_0x2aafdc[_0x499b('0x35')],qs['fields'](_0x5402a1[_0x499b('0x33')]['fields']));_0x72cdbd[_0x499b('0x38')]=_0x72cdbd[_0x499b('0x38')][_0x499b('0x39')]?_0x72cdbd[_0x499b('0x38')]:_0x2aafdc[_0x499b('0x35')];if(_0x5402a1[_0x499b('0x33')][_0x499b('0x46')]){_0x72cdbd[_0x499b('0x40')]=[{'all':!![]}];}_0x72cdbd=_[_0x499b('0x3d')]({},_0x72cdbd,_0x5402a1[_0x499b('0x47')]);return db[_0x499b('0x2f')]['find'](_0x72cdbd)[_0x499b('0x27')](handleEntityNotFound(_0x40e87c,null))[_0x499b('0x27')](respondWithResult(_0x40e87c,null))[_0x499b('0x43')](handleError(_0x40e87c,null));};exports[_0x499b('0x48')]=function(_0x37f724,_0x525a40){return db[_0x499b('0x2f')][_0x499b('0x48')](_0x37f724[_0x499b('0x49')],{})[_0x499b('0x27')](respondWithResult(_0x525a40,0xc9))[_0x499b('0x43')](handleError(_0x525a40,null));};exports[_0x499b('0x4a')]=function(_0x3862ef,_0x54b046){if(_0x3862ef[_0x499b('0x49')]['id']){delete _0x3862ef['body']['id'];}return db[_0x499b('0x2f')][_0x499b('0x4b')]({'where':{'id':_0x3862ef['params']['id']}})[_0x499b('0x27')](handleEntityNotFound(_0x54b046,null))[_0x499b('0x27')](saveUpdates(_0x3862ef[_0x499b('0x49')],null))['then'](respondWithResult(_0x54b046,null))['catch'](handleError(_0x54b046,null));};exports[_0x499b('0x28')]=function(_0x158827,_0x24e94d){return db[_0x499b('0x2f')][_0x499b('0x4b')]({'where':{'id':_0x158827['params']['id']}})[_0x499b('0x27')](handleEntityNotFound(_0x24e94d,null))[_0x499b('0x27')](removeEntity(_0x24e94d,null))[_0x499b('0x43')](handleError(_0x24e94d,null));};exports[_0x499b('0x4c')]=function(_0x1f6a76,_0x444567){return db[_0x499b('0x2f')][_0x499b('0x4c')]()[_0x499b('0x27')](respondWithResult(_0x444567,null))[_0x499b('0x43')](handleError(_0x444567,null));};function wrapUser(_0x266e42){return function(_0x22eb0e){var _0x2482e8=_0x266e42[_0x499b('0x4d')]({'plain':!![]});_0x2482e8[_0x499b('0x4e')]=[];if(_0x22eb0e){_0x2482e8[_0x499b('0x4f')]=_0x22eb0e['createdAt'];_0x2482e8[_0x499b('0x50')]=_0x22eb0e;}else{_0x2482e8[_0x499b('0x4f')]=moment(0x0)[_0x499b('0x51')](_0x499b('0x52'));_0x2482e8[_0x499b('0x50')]={};}return _0x2482e8;};}exports['getUsers']=function(_0xdb5a75,_0x859de0,_0x2ea8ae){var _0x4f269f=[];return db[_0x499b('0x53')]['findAll']({'where':{'role':[_0x499b('0x54'),_0x499b('0x55'),_0x499b('0x56')]},'attributes':['id',_0x499b('0x57'),_0x499b('0x2b'),_0x499b('0x58'),_0x499b('0x59'),_0x499b('0x5a'),_0x499b('0x5b'),_0x499b('0x5c'),_0x499b('0x5d'),_0x499b('0x5e')],'order':qs[_0x499b('0x5f')](_0x499b('0x60')),'include':[{'model':db[_0x499b('0x61')],'as':_0x499b('0x62'),'attributes':['id',_0x499b('0x2b'),_0x499b('0x63')],'through':{'attributes':[]}}]})[_0x499b('0x27')](function(_0x88f88e){if(_0x88f88e){var _0x564c1d=_0xdb5a75[_0x499b('0x56')][_0x499b('0x4d')]({'plain':!![]});if(!_0x564c1d)throw new Error(_0x499b('0x64'));if(_0x564c1d[_0x499b('0x58')]===_0x499b('0x56')){return db[_0x499b('0x65')][_0x499b('0x4b')]({'where':{'name':_0x499b('0x66'),'userProfileId':_0x564c1d['userProfileId']},'raw':!![]})[_0x499b('0x27')](function(_0x33b7ed){if(_0x33b7ed){if(_0x33b7ed['autoAssociation']===0x0){return db['UserProfileResource'][_0x499b('0x41')]({'where':{'sectionId':_0x33b7ed['id']},'raw':!![]})['then'](function(_0x5ad65e){var _0x5b43ac=[];if(_['isEmpty'](_0x5ad65e)){_0x5b43ac=_[_0x499b('0x3c')](_0x88f88e,function(_0x39b541){if(_0x39b541[_0x499b('0x58')]!==_0x499b('0x54')){return _0x39b541;}});return _0x5b43ac;}else{for(var _0x2821f2=0x0;_0x2821f2<_0x88f88e['length'];_0x2821f2++){var _0x3387be=_0x88f88e[_0x2821f2];if(_0x3387be[_0x499b('0x58')]===_0x499b('0x54')){var _0x7daabc=_[_0x499b('0x4b')](_0x5ad65e,function(_0x1547c0){return _0x1547c0[_0x499b('0x67')]===_0x3387be['id'];});if(_0x7daabc)_0x5b43ac[_0x499b('0x68')](_0x3387be);}else{_0x5b43ac[_0x499b('0x68')](_0x3387be);}}return _0x5b43ac;}});}else{return _0x88f88e;}}else{var _0x4d1fba=_['filter'](_0x88f88e,function(_0x5c5d31){if(_0x5c5d31[_0x499b('0x58')]!==_0x499b('0x54')){return _0x5c5d31;}});return _0x4d1fba;}});}else{return _0x88f88e;}}})['then'](function(_0x4a27f5){var _0x137b9f=[];if(_0x4a27f5){_0x4f269f=_0x4a27f5;for(var _0x2c3c75=0x0;_0x2c3c75<_0x4a27f5[_0x499b('0x39')];_0x2c3c75+=0x1){_0x4f269f[_0x2c3c75][_0x499b('0x4e')]=[];_0x137b9f[_0x499b('0x68')](db[_0x499b('0x2f')][_0x499b('0x4b')]({'where':{'FromId':[_0xdb5a75[_0x499b('0x56')]['id'],_0x4a27f5[_0x2c3c75]['id']],'ToId':[_0xdb5a75[_0x499b('0x56')]['id'],_0x4a27f5[_0x2c3c75]['id']],'ChatGroupId':null},'attributes':['id',_0x499b('0x69'),_0x499b('0x6a'),_0x499b('0x6b'),_0x499b('0x6c'),_0x499b('0x49')],'order':qs[_0x499b('0x5f')](_0x499b('0x6d')),'limit':0x1,'offset':0x0,'raw':!![]})[_0x499b('0x27')](wrapUser(_0x4a27f5[_0x2c3c75])));}return BPromise[_0x499b('0x6e')](_0x137b9f);}return[];})[_0x499b('0x27')](function(_0xfdd162){return{'rows':_0xfdd162,'count':_0xfdd162[_0x499b('0x39')]};})['then'](respondWithResult(_0x859de0,null))[_0x499b('0x43')](handleError(_0x859de0,null));};