Built motion from commit 753c950e.|2.5.42
[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 _0x9edb=['crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/environment','../../config/license/util','defaults','redis','localhost','./chatInternalMessage.socket','register','status','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','update','then','destroy','end','sendStatus','error','name','index','map','rawAttributes','type','key','model','query','keys','filters','attributes','intersection','fields','length','hasOwnProperty','order','sort','where','pick','merge','filter','options','ChatInternalMessage','includeAll','include','findAll','rows','catch','show','find','body','params','get','messages','lastMessageAt','format','lastMessage','agent','admin','user','fullname','role','userpic','lastLoginAt','showWebBar','-online','VoiceQueue','Unable\x20to\x20retrieve\x20the\x20current\x20user','Agents','userProfileId','isEmpty','resourceId','push','createdAt','ToId','-createdAt','rimraf','zip-dir','request-promise','moment','util','to-csv','ejs','fs-extra','lodash','squel'];(function(_0x7dfb12,_0x3ced28){var _0x5116b6=function(_0x4f5b47){while(--_0x4f5b47){_0x7dfb12['push'](_0x7dfb12['shift']());}};_0x5116b6(++_0x3ced28);}(_0x9edb,0x18a));var _0xb9ed=function(_0x3b06f5,_0x2c5389){_0x3b06f5=_0x3b06f5-0x0;var _0x5208c2=_0x9edb[_0x3b06f5];return _0x5208c2;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xb9ed('0x0'));var zipdir=require(_0xb9ed('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0xb9ed('0x2'));var moment=require(_0xb9ed('0x3'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0xb9ed('0x4'));var path=require('path');var sox=require('sox');var csv=require(_0xb9ed('0x5'));var ejs=require(_0xb9ed('0x6'));var fs=require('fs');var fs_extra=require(_0xb9ed('0x7'));var _=require(_0xb9ed('0x8'));var squel=require(_0xb9ed('0x9'));var crypto=require(_0xb9ed('0xa'));var jsforce=require(_0xb9ed('0xb'));var deskjs=require(_0xb9ed('0xc'));var toCsv=require(_0xb9ed('0x5'));var querystring=require(_0xb9ed('0xd'));var Papa=require(_0xb9ed('0xe'));var Redis=require(_0xb9ed('0xf'));var authService=require(_0xb9ed('0x10'));var qs=require(_0xb9ed('0x11'));var as=require(_0xb9ed('0x12'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xb9ed('0x13'))(_0xb9ed('0x14'));var utils=require('../../config/utils');var config=require(_0xb9ed('0x15'));var licenseUtil=require(_0xb9ed('0x16'));var db=require('../../mysqldb')['db'];config['redis']=_[_0xb9ed('0x17')](config[_0xb9ed('0x18')],{'host':_0xb9ed('0x19'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0xb9ed('0x18')]));require(_0xb9ed('0x1a'))[_0xb9ed('0x1b')](socket);function respondWithStatusCode(_0xa03ac0,_0x134b9d){_0x134b9d=_0x134b9d||0xcc;return function(_0x3976ab){if(_0x3976ab){return _0xa03ac0['sendStatus'](_0x134b9d);}return _0xa03ac0[_0xb9ed('0x1c')](_0x134b9d)['end']();};}function respondWithResult(_0x5673eb,_0x2766b1){_0x2766b1=_0x2766b1||0xc8;return function(_0x30cbb9){if(_0x30cbb9){return _0x5673eb['status'](_0x2766b1)[_0xb9ed('0x1d')](_0x30cbb9);}};}function respondWithFilteredResult(_0x35694f,_0x16e7ba){return function(_0x34b9c5){if(_0x34b9c5){var _0x58a01e=typeof _0x16e7ba[_0xb9ed('0x1e')]===_0xb9ed('0x1f')&&typeof _0x16e7ba[_0xb9ed('0x20')]===_0xb9ed('0x1f');var _0x2779c5=_0x34b9c5['count'];var _0x4a03cd=_0x58a01e?0x0:_0x16e7ba[_0xb9ed('0x1e')];var _0x3f90e0=_0x58a01e?_0x34b9c5[_0xb9ed('0x21')]:_0x16e7ba[_0xb9ed('0x1e')]+_0x16e7ba[_0xb9ed('0x20')];var _0xf35ee6;if(_0x3f90e0>=_0x2779c5){_0x3f90e0=_0x2779c5;_0xf35ee6=0xc8;}else{_0xf35ee6=0xce;}_0x35694f[_0xb9ed('0x1c')](_0xf35ee6);return _0x35694f[_0xb9ed('0x22')](_0xb9ed('0x23'),_0x4a03cd+'-'+_0x3f90e0+'/'+_0x2779c5)['json'](_0x34b9c5);}return null;};}function patchUpdates(_0x25235e){return function(_0xfbfbee){try{jsonpatch[_0xb9ed('0x24')](_0xfbfbee,_0x25235e,!![]);}catch(_0x3e0827){return BPromise[_0xb9ed('0x25')](_0x3e0827);}return _0xfbfbee[_0xb9ed('0x26')]();};}function saveUpdates(_0x2a9d3e,_0x429396){return function(_0x3ef6ba){if(_0x3ef6ba){return _0x3ef6ba[_0xb9ed('0x27')](_0x2a9d3e)[_0xb9ed('0x28')](function(_0xac69c2){return _0xac69c2;});}return null;};}function removeEntity(_0x189b5d,_0x25c9e3){return function(_0x11a7ae){if(_0x11a7ae){return _0x11a7ae[_0xb9ed('0x29')]()[_0xb9ed('0x28')](function(){_0x189b5d[_0xb9ed('0x1c')](0xcc)[_0xb9ed('0x2a')]();});}};}function handleEntityNotFound(_0x428603,_0x50a0d0){return function(_0x302d17){if(!_0x302d17){_0x428603[_0xb9ed('0x2b')](0x194);}return _0x302d17;};}function handleError(_0x306d2f,_0x24370c){_0x24370c=_0x24370c||0x1f4;return function(_0x4f031f){logger[_0xb9ed('0x2c')](_0x4f031f['stack']);if(_0x4f031f['name']){delete _0x4f031f[_0xb9ed('0x2d')];}_0x306d2f['status'](_0x24370c)['send'](_0x4f031f);};}exports[_0xb9ed('0x2e')]=function(_0x542226,_0x29488c){var _0x5cefbb={},_0x1e1fd7={},_0x4bf994={'count':0x0,'rows':[]};var _0x39adaf=_[_0xb9ed('0x2f')](db['ChatInternalMessage'][_0xb9ed('0x30')],function(_0x45d14e){return{'name':_0x45d14e['fieldName'],'type':_0x45d14e[_0xb9ed('0x31')][_0xb9ed('0x32')]};});_0x1e1fd7[_0xb9ed('0x33')]=_[_0xb9ed('0x2f')](_0x39adaf,'name');_0x1e1fd7[_0xb9ed('0x34')]=_[_0xb9ed('0x35')](_0x542226[_0xb9ed('0x34')]);_0x1e1fd7[_0xb9ed('0x36')]=_['intersection'](_0x1e1fd7['model'],_0x1e1fd7[_0xb9ed('0x34')]);_0x5cefbb[_0xb9ed('0x37')]=_[_0xb9ed('0x38')](_0x1e1fd7[_0xb9ed('0x33')],qs[_0xb9ed('0x39')](_0x542226[_0xb9ed('0x34')][_0xb9ed('0x39')]));_0x5cefbb[_0xb9ed('0x37')]=_0x5cefbb['attributes'][_0xb9ed('0x3a')]?_0x5cefbb[_0xb9ed('0x37')]:_0x1e1fd7['model'];if(!_0x542226['query'][_0xb9ed('0x3b')]('nolimit')){_0x5cefbb[_0xb9ed('0x20')]=qs['limit'](_0x542226[_0xb9ed('0x34')]['limit']);_0x5cefbb['offset']=qs[_0xb9ed('0x1e')](_0x542226[_0xb9ed('0x34')][_0xb9ed('0x1e')]);}_0x5cefbb[_0xb9ed('0x3c')]=qs[_0xb9ed('0x3d')](_0x542226[_0xb9ed('0x34')]['sort']);_0x5cefbb[_0xb9ed('0x3e')]=qs[_0xb9ed('0x36')](_[_0xb9ed('0x3f')](_0x542226[_0xb9ed('0x34')],_0x1e1fd7[_0xb9ed('0x36')]),_0x39adaf);if(_0x542226[_0xb9ed('0x34')]['filter']){_0x5cefbb[_0xb9ed('0x3e')]=_[_0xb9ed('0x40')](_0x5cefbb['where'],{'$or':_[_0xb9ed('0x2f')](_0x39adaf,function(_0x590da2){if(_0x590da2[_0xb9ed('0x31')]!=='VIRTUAL'){var _0x38b562={};_0x38b562[_0x590da2['name']]={'$like':'%'+_0x542226[_0xb9ed('0x34')][_0xb9ed('0x41')]+'%'};return _0x38b562;}})});}_0x5cefbb=_[_0xb9ed('0x40')]({},_0x5cefbb,_0x542226[_0xb9ed('0x42')]);var _0xcc31a2={'where':_0x5cefbb[_0xb9ed('0x3e')]};return db[_0xb9ed('0x43')]['count'](_0xcc31a2)['then'](function(_0x2a047a){_0x4bf994[_0xb9ed('0x21')]=_0x2a047a;if(_0x542226[_0xb9ed('0x34')][_0xb9ed('0x44')]){_0x5cefbb[_0xb9ed('0x45')]=[{'all':!![]}];}return db['ChatInternalMessage'][_0xb9ed('0x46')](_0x5cefbb);})[_0xb9ed('0x28')](function(_0x199cf9){_0x4bf994[_0xb9ed('0x47')]=_0x199cf9;return _0x4bf994;})['then'](respondWithFilteredResult(_0x29488c,_0x5cefbb))[_0xb9ed('0x48')](handleError(_0x29488c,null));};exports[_0xb9ed('0x49')]=function(_0x2b524e,_0x4e039f){var _0x33041d={'raw':!![],'where':{'id':_0x2b524e['params']['id']}},_0x491069={};_0x491069[_0xb9ed('0x33')]=_[_0xb9ed('0x35')](db[_0xb9ed('0x43')][_0xb9ed('0x30')]);_0x491069[_0xb9ed('0x34')]=_[_0xb9ed('0x35')](_0x2b524e[_0xb9ed('0x34')]);_0x491069['filters']=_[_0xb9ed('0x38')](_0x491069[_0xb9ed('0x33')],_0x491069['query']);_0x33041d['attributes']=_['intersection'](_0x491069[_0xb9ed('0x33')],qs[_0xb9ed('0x39')](_0x2b524e[_0xb9ed('0x34')]['fields']));_0x33041d['attributes']=_0x33041d['attributes'][_0xb9ed('0x3a')]?_0x33041d[_0xb9ed('0x37')]:_0x491069[_0xb9ed('0x33')];if(_0x2b524e['query'][_0xb9ed('0x44')]){_0x33041d[_0xb9ed('0x45')]=[{'all':!![]}];}_0x33041d=_[_0xb9ed('0x40')]({},_0x33041d,_0x2b524e[_0xb9ed('0x42')]);return db[_0xb9ed('0x43')][_0xb9ed('0x4a')](_0x33041d)[_0xb9ed('0x28')](handleEntityNotFound(_0x4e039f,null))['then'](respondWithResult(_0x4e039f,null))[_0xb9ed('0x48')](handleError(_0x4e039f,null));};exports['create']=function(_0x42857d,_0x1c1327){return db[_0xb9ed('0x43')]['create'](_0x42857d[_0xb9ed('0x4b')],{})[_0xb9ed('0x28')](respondWithResult(_0x1c1327,0xc9))[_0xb9ed('0x48')](handleError(_0x1c1327,null));};exports[_0xb9ed('0x27')]=function(_0x1f09bf,_0x48fe02){if(_0x1f09bf['body']['id']){delete _0x1f09bf[_0xb9ed('0x4b')]['id'];}return db[_0xb9ed('0x43')][_0xb9ed('0x4a')]({'where':{'id':_0x1f09bf[_0xb9ed('0x4c')]['id']}})[_0xb9ed('0x28')](handleEntityNotFound(_0x48fe02,null))[_0xb9ed('0x28')](saveUpdates(_0x1f09bf[_0xb9ed('0x4b')],null))[_0xb9ed('0x28')](respondWithResult(_0x48fe02,null))[_0xb9ed('0x48')](handleError(_0x48fe02,null));};exports[_0xb9ed('0x29')]=function(_0x4ba18f,_0x304f64){return db[_0xb9ed('0x43')][_0xb9ed('0x4a')]({'where':{'id':_0x4ba18f['params']['id']}})[_0xb9ed('0x28')](handleEntityNotFound(_0x304f64,null))[_0xb9ed('0x28')](removeEntity(_0x304f64,null))[_0xb9ed('0x48')](handleError(_0x304f64,null));};exports['describe']=function(_0x310ab6,_0x4e5fe0){return db[_0xb9ed('0x43')]['describe']()[_0xb9ed('0x28')](respondWithResult(_0x4e5fe0,null))[_0xb9ed('0x48')](handleError(_0x4e5fe0,null));};function wrapUser(_0x2e90fe){return function(_0x73ac36){var _0x23401b=_0x2e90fe[_0xb9ed('0x4d')]({'plain':!![]});_0x23401b[_0xb9ed('0x4e')]=[];if(_0x73ac36){_0x23401b[_0xb9ed('0x4f')]=_0x73ac36['createdAt'];_0x23401b['lastMessage']=_0x73ac36;}else{_0x23401b[_0xb9ed('0x4f')]=moment(0x0)[_0xb9ed('0x50')]('YYYY-MM-DD\x20HH:mm:ss');_0x23401b[_0xb9ed('0x51')]={};}return _0x23401b;};}exports['getUsers']=function(_0x1abbad,_0x42d8a1,_0x5bb642){var _0x22a8c7=[];return db['User'][_0xb9ed('0x46')]({'where':{'role':[_0xb9ed('0x52'),_0xb9ed('0x53'),_0xb9ed('0x54')]},'attributes':['id',_0xb9ed('0x55'),_0xb9ed('0x2d'),_0xb9ed('0x56'),_0xb9ed('0x57'),'internal','online',_0xb9ed('0x58'),'allowmessenger',_0xb9ed('0x59')],'order':qs[_0xb9ed('0x3d')](_0xb9ed('0x5a')),'include':[{'model':db[_0xb9ed('0x5b')],'as':'VoiceQueues','attributes':['id','name',_0xb9ed('0x31')],'through':{'attributes':[]}}]})[_0xb9ed('0x28')](function(_0x410f3f){if(_0x410f3f){var _0x54b779=_0x1abbad[_0xb9ed('0x54')]['get']({'plain':!![]});if(!_0x54b779)throw new Error(_0xb9ed('0x5c'));if(_0x54b779[_0xb9ed('0x56')]===_0xb9ed('0x54')){return db['UserProfileSection'][_0xb9ed('0x4a')]({'where':{'name':_0xb9ed('0x5d'),'userProfileId':_0x54b779[_0xb9ed('0x5e')]},'raw':!![]})['then'](function(_0x53703b){if(_0x53703b){if(_0x53703b['autoAssociation']===0x0){return db['UserProfileResource'][_0xb9ed('0x46')]({'where':{'sectionId':_0x53703b['id']},'raw':!![]})[_0xb9ed('0x28')](function(_0xea56cb){var _0x2fbf1d=[];if(_[_0xb9ed('0x5f')](_0xea56cb)){_0x2fbf1d=_[_0xb9ed('0x41')](_0x410f3f,function(_0x5036f3){if(_0x5036f3[_0xb9ed('0x56')]!=='agent'){return _0x5036f3;}});return _0x2fbf1d;}else{for(var _0x928b=0x0;_0x928b<_0x410f3f[_0xb9ed('0x3a')];_0x928b++){var _0x2aa4d7=_0x410f3f[_0x928b];if(_0x2aa4d7['role']===_0xb9ed('0x52')){var _0x2e6ed3=_[_0xb9ed('0x4a')](_0xea56cb,function(_0x42d4e9){return _0x42d4e9[_0xb9ed('0x60')]===_0x2aa4d7['id'];});if(_0x2e6ed3)_0x2fbf1d['push'](_0x2aa4d7);}else{_0x2fbf1d[_0xb9ed('0x61')](_0x2aa4d7);}}return _0x2fbf1d;}});}else{return _0x410f3f;}}else{var _0x47edc0=_[_0xb9ed('0x41')](_0x410f3f,function(_0x26e118){if(_0x26e118['role']!==_0xb9ed('0x52')){return _0x26e118;}});return _0x47edc0;}});}else{return _0x410f3f;}}})[_0xb9ed('0x28')](function(_0x48b4de){var _0x5a39de=[];if(_0x48b4de){_0x22a8c7=_0x48b4de;for(var _0x1fe2a7=0x0;_0x1fe2a7<_0x48b4de[_0xb9ed('0x3a')];_0x1fe2a7+=0x1){_0x22a8c7[_0x1fe2a7][_0xb9ed('0x4e')]=[];_0x5a39de[_0xb9ed('0x61')](db['ChatInternalMessage'][_0xb9ed('0x4a')]({'where':{'FromId':[_0x1abbad[_0xb9ed('0x54')]['id'],_0x48b4de[_0x1fe2a7]['id']],'ToId':[_0x1abbad['user']['id'],_0x48b4de[_0x1fe2a7]['id']],'ChatGroupId':null},'attributes':['id',_0xb9ed('0x62'),'FromId',_0xb9ed('0x63'),'read','body'],'order':qs[_0xb9ed('0x3d')](_0xb9ed('0x64')),'limit':0x1,'offset':0x0,'raw':!![]})['then'](wrapUser(_0x48b4de[_0x1fe2a7])));}return BPromise['all'](_0x5a39de);}return[];})[_0xb9ed('0x28')](function(_0x374c59){return{'rows':_0x374c59,'count':_0x374c59[_0xb9ed('0x3a')]};})[_0xb9ed('0x28')](respondWithResult(_0x42d8a1,null))[_0xb9ed('0x48')](handleError(_0x42d8a1,null));};