Built motion from commit 97153652.|2.6.26
[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 _0xac84=['describe','get','messages','lastMessageAt','createdAt','lastMessage','YYYY-MM-DD\x20HH:mm:ss','getUsers','User','findAll','agent','admin','user','fullname','userpic','internal','online','lastLoginAt','VoiceQueues','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','Agents','userProfileId','autoAssociation','UserProfileResource','isEmpty','resourceId','push','-createdAt','all','eml-format','rimraf','zip-dir','moment','bluebird','mustache','util','path','sox','fs-extra','squel','crypto','desk.js','querystring','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','redis','defaults','./chatInternalMessage.socket','register','sendStatus','status','end','json','undefined','limit','count','offset','set','Content-Range','apply','reject','save','update','then','destroy','stack','name','send','index','map','ChatInternalMessage','rawAttributes','fieldName','type','key','model','query','filters','intersection','fields','attributes','length','sort','where','pick','merge','filter','options','include','rows','show','keys','includeAll','find','catch','body','params'];(function(_0x4811ee,_0x1d5ce9){var _0x354c84=function(_0x5184e3){while(--_0x5184e3){_0x4811ee['push'](_0x4811ee['shift']());}};_0x354c84(++_0x1d5ce9);}(_0xac84,0x15a));var _0x4ac8=function(_0x2494f5,_0x1f1d3c){_0x2494f5=_0x2494f5-0x0;var _0x5c60a4=_0xac84[_0x2494f5];return _0x5c60a4;};'use strict';var emlformat=require(_0x4ac8('0x0'));var rimraf=require(_0x4ac8('0x1'));var zipdir=require(_0x4ac8('0x2'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0x4ac8('0x3'));var BPromise=require(_0x4ac8('0x4'));var Mustache=require(_0x4ac8('0x5'));var util=require(_0x4ac8('0x6'));var path=require(_0x4ac8('0x7'));var sox=require(_0x4ac8('0x8'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x4ac8('0x9'));var _=require('lodash');var squel=require(_0x4ac8('0xa'));var crypto=require(_0x4ac8('0xb'));var jsforce=require('jsforce');var deskjs=require(_0x4ac8('0xc'));var toCsv=require('to-csv');var querystring=require(_0x4ac8('0xd'));var Papa=require('papaparse');var Redis=require(_0x4ac8('0xe'));var authService=require('../../components/auth/service');var qs=require(_0x4ac8('0xf'));var as=require(_0x4ac8('0x10'));var hardwareService=require(_0x4ac8('0x11'));var logger=require(_0x4ac8('0x12'))(_0x4ac8('0x13'));var utils=require(_0x4ac8('0x14'));var config=require(_0x4ac8('0x15'));var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];config[_0x4ac8('0x16')]=_[_0x4ac8('0x17')](config[_0x4ac8('0x16')],{'host':'localhost','port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x4ac8('0x16')]));require(_0x4ac8('0x18'))[_0x4ac8('0x19')](socket);function respondWithStatusCode(_0x118e4f,_0x561850){_0x561850=_0x561850||0xcc;return function(_0x25bc1e){if(_0x25bc1e){return _0x118e4f[_0x4ac8('0x1a')](_0x561850);}return _0x118e4f[_0x4ac8('0x1b')](_0x561850)[_0x4ac8('0x1c')]();};}function respondWithResult(_0x1378c1,_0x1c3889){_0x1c3889=_0x1c3889||0xc8;return function(_0x1f086d){if(_0x1f086d){return _0x1378c1[_0x4ac8('0x1b')](_0x1c3889)[_0x4ac8('0x1d')](_0x1f086d);}};}function respondWithFilteredResult(_0x28dad6,_0x5d7a6e){return function(_0x2713f6){if(_0x2713f6){var _0x4b7a7e=typeof _0x5d7a6e['offset']===_0x4ac8('0x1e')&&typeof _0x5d7a6e[_0x4ac8('0x1f')]===_0x4ac8('0x1e');var _0x2d7e2a=_0x2713f6[_0x4ac8('0x20')];var _0x505553=_0x4b7a7e?0x0:_0x5d7a6e[_0x4ac8('0x21')];var _0x4ada6a=_0x4b7a7e?_0x2713f6[_0x4ac8('0x20')]:_0x5d7a6e[_0x4ac8('0x21')]+_0x5d7a6e[_0x4ac8('0x1f')];var _0x4adc7a;if(_0x4ada6a>=_0x2d7e2a){_0x4ada6a=_0x2d7e2a;_0x4adc7a=0xc8;}else{_0x4adc7a=0xce;}_0x28dad6[_0x4ac8('0x1b')](_0x4adc7a);return _0x28dad6[_0x4ac8('0x22')](_0x4ac8('0x23'),_0x505553+'-'+_0x4ada6a+'/'+_0x2d7e2a)[_0x4ac8('0x1d')](_0x2713f6);}return null;};}function patchUpdates(_0x3ea875){return function(_0x116d5f){try{jsonpatch[_0x4ac8('0x24')](_0x116d5f,_0x3ea875,!![]);}catch(_0x51a575){return BPromise[_0x4ac8('0x25')](_0x51a575);}return _0x116d5f[_0x4ac8('0x26')]();};}function saveUpdates(_0x5e39a6,_0x24a0a1){return function(_0x4f0069){if(_0x4f0069){return _0x4f0069[_0x4ac8('0x27')](_0x5e39a6)[_0x4ac8('0x28')](function(_0x419907){return _0x419907;});}return null;};}function removeEntity(_0x5fca00,_0x206faf){return function(_0x30a0fb){if(_0x30a0fb){return _0x30a0fb[_0x4ac8('0x29')]()[_0x4ac8('0x28')](function(){_0x5fca00[_0x4ac8('0x1b')](0xcc)[_0x4ac8('0x1c')]();});}};}function handleEntityNotFound(_0x5738e4,_0x13730d){return function(_0x1e15a7){if(!_0x1e15a7){_0x5738e4[_0x4ac8('0x1a')](0x194);}return _0x1e15a7;};}function handleError(_0x3c05fd,_0x465a95){_0x465a95=_0x465a95||0x1f4;return function(_0x46a41e){logger['error'](_0x46a41e[_0x4ac8('0x2a')]);if(_0x46a41e[_0x4ac8('0x2b')]){delete _0x46a41e[_0x4ac8('0x2b')];}_0x3c05fd['status'](_0x465a95)[_0x4ac8('0x2c')](_0x46a41e);};}exports[_0x4ac8('0x2d')]=function(_0x448b60,_0x5048af){var _0x1f6d5e={},_0x1daf4a={},_0x11cfaf={'count':0x0,'rows':[]};var _0x13b078=_[_0x4ac8('0x2e')](db[_0x4ac8('0x2f')][_0x4ac8('0x30')],function(_0x53fd0f){return{'name':_0x53fd0f[_0x4ac8('0x31')],'type':_0x53fd0f[_0x4ac8('0x32')][_0x4ac8('0x33')]};});_0x1daf4a[_0x4ac8('0x34')]=_[_0x4ac8('0x2e')](_0x13b078,_0x4ac8('0x2b'));_0x1daf4a[_0x4ac8('0x35')]=_['keys'](_0x448b60[_0x4ac8('0x35')]);_0x1daf4a[_0x4ac8('0x36')]=_[_0x4ac8('0x37')](_0x1daf4a[_0x4ac8('0x34')],_0x1daf4a[_0x4ac8('0x35')]);_0x1f6d5e['attributes']=_['intersection'](_0x1daf4a[_0x4ac8('0x34')],qs[_0x4ac8('0x38')](_0x448b60[_0x4ac8('0x35')][_0x4ac8('0x38')]));_0x1f6d5e[_0x4ac8('0x39')]=_0x1f6d5e[_0x4ac8('0x39')][_0x4ac8('0x3a')]?_0x1f6d5e[_0x4ac8('0x39')]:_0x1daf4a[_0x4ac8('0x34')];if(!_0x448b60[_0x4ac8('0x35')]['hasOwnProperty']('nolimit')){_0x1f6d5e[_0x4ac8('0x1f')]=qs['limit'](_0x448b60[_0x4ac8('0x35')][_0x4ac8('0x1f')]);_0x1f6d5e[_0x4ac8('0x21')]=qs[_0x4ac8('0x21')](_0x448b60['query'][_0x4ac8('0x21')]);}_0x1f6d5e['order']=qs[_0x4ac8('0x3b')](_0x448b60[_0x4ac8('0x35')][_0x4ac8('0x3b')]);_0x1f6d5e[_0x4ac8('0x3c')]=qs['filters'](_[_0x4ac8('0x3d')](_0x448b60[_0x4ac8('0x35')],_0x1daf4a[_0x4ac8('0x36')]),_0x13b078);if(_0x448b60['query']['filter']){_0x1f6d5e[_0x4ac8('0x3c')]=_[_0x4ac8('0x3e')](_0x1f6d5e[_0x4ac8('0x3c')],{'$or':_[_0x4ac8('0x2e')](_0x13b078,function(_0x1b7587){if(_0x1b7587[_0x4ac8('0x32')]!=='VIRTUAL'){var _0x26527a={};_0x26527a[_0x1b7587[_0x4ac8('0x2b')]]={'$like':'%'+_0x448b60[_0x4ac8('0x35')][_0x4ac8('0x3f')]+'%'};return _0x26527a;}})});}_0x1f6d5e=_[_0x4ac8('0x3e')]({},_0x1f6d5e,_0x448b60[_0x4ac8('0x40')]);var _0x5567c3={'where':_0x1f6d5e['where']};return db[_0x4ac8('0x2f')]['count'](_0x5567c3)[_0x4ac8('0x28')](function(_0x17c333){_0x11cfaf[_0x4ac8('0x20')]=_0x17c333;if(_0x448b60[_0x4ac8('0x35')]['includeAll']){_0x1f6d5e[_0x4ac8('0x41')]=[{'all':!![]}];}return db['ChatInternalMessage']['findAll'](_0x1f6d5e);})[_0x4ac8('0x28')](function(_0x5b51f2){_0x11cfaf[_0x4ac8('0x42')]=_0x5b51f2;return _0x11cfaf;})[_0x4ac8('0x28')](respondWithFilteredResult(_0x5048af,_0x1f6d5e))['catch'](handleError(_0x5048af,null));};exports[_0x4ac8('0x43')]=function(_0x4f704c,_0x445384){var _0x24c225={'raw':!![],'where':{'id':_0x4f704c['params']['id']}},_0xf0b157={};_0xf0b157['model']=_[_0x4ac8('0x44')](db[_0x4ac8('0x2f')][_0x4ac8('0x30')]);_0xf0b157[_0x4ac8('0x35')]=_['keys'](_0x4f704c[_0x4ac8('0x35')]);_0xf0b157[_0x4ac8('0x36')]=_[_0x4ac8('0x37')](_0xf0b157[_0x4ac8('0x34')],_0xf0b157[_0x4ac8('0x35')]);_0x24c225[_0x4ac8('0x39')]=_['intersection'](_0xf0b157[_0x4ac8('0x34')],qs[_0x4ac8('0x38')](_0x4f704c[_0x4ac8('0x35')][_0x4ac8('0x38')]));_0x24c225[_0x4ac8('0x39')]=_0x24c225[_0x4ac8('0x39')]['length']?_0x24c225[_0x4ac8('0x39')]:_0xf0b157[_0x4ac8('0x34')];if(_0x4f704c[_0x4ac8('0x35')][_0x4ac8('0x45')]){_0x24c225[_0x4ac8('0x41')]=[{'all':!![]}];}_0x24c225=_['merge']({},_0x24c225,_0x4f704c[_0x4ac8('0x40')]);return db['ChatInternalMessage'][_0x4ac8('0x46')](_0x24c225)['then'](handleEntityNotFound(_0x445384,null))['then'](respondWithResult(_0x445384,null))[_0x4ac8('0x47')](handleError(_0x445384,null));};exports['create']=function(_0x1404ff,_0x3402e4){return db[_0x4ac8('0x2f')]['create'](_0x1404ff[_0x4ac8('0x48')],{})[_0x4ac8('0x28')](respondWithResult(_0x3402e4,0xc9))['catch'](handleError(_0x3402e4,null));};exports['update']=function(_0x5e0e16,_0x96ca89){if(_0x5e0e16[_0x4ac8('0x48')]['id']){delete _0x5e0e16[_0x4ac8('0x48')]['id'];}return db['ChatInternalMessage'][_0x4ac8('0x46')]({'where':{'id':_0x5e0e16[_0x4ac8('0x49')]['id']}})[_0x4ac8('0x28')](handleEntityNotFound(_0x96ca89,null))[_0x4ac8('0x28')](saveUpdates(_0x5e0e16['body'],null))[_0x4ac8('0x28')](respondWithResult(_0x96ca89,null))[_0x4ac8('0x47')](handleError(_0x96ca89,null));};exports[_0x4ac8('0x29')]=function(_0x825a42,_0x530d29){return db[_0x4ac8('0x2f')][_0x4ac8('0x46')]({'where':{'id':_0x825a42[_0x4ac8('0x49')]['id']}})[_0x4ac8('0x28')](handleEntityNotFound(_0x530d29,null))[_0x4ac8('0x28')](removeEntity(_0x530d29,null))[_0x4ac8('0x47')](handleError(_0x530d29,null));};exports[_0x4ac8('0x4a')]=function(_0x363bbe,_0x15eca2){return db['ChatInternalMessage']['describe']()['then'](respondWithResult(_0x15eca2,null))[_0x4ac8('0x47')](handleError(_0x15eca2,null));};function wrapUser(_0x3dccb1){return function(_0x258f80){var _0x1042bf=_0x3dccb1[_0x4ac8('0x4b')]({'plain':!![]});_0x1042bf[_0x4ac8('0x4c')]=[];if(_0x258f80){_0x1042bf[_0x4ac8('0x4d')]=_0x258f80[_0x4ac8('0x4e')];_0x1042bf[_0x4ac8('0x4f')]=_0x258f80;}else{_0x1042bf[_0x4ac8('0x4d')]=moment(0x0)['format'](_0x4ac8('0x50'));_0x1042bf[_0x4ac8('0x4f')]={};}return _0x1042bf;};}exports[_0x4ac8('0x51')]=function(_0x35b61,_0x3cc5d3,_0x255b1f){var _0x3c4efc=[];return db[_0x4ac8('0x52')][_0x4ac8('0x53')]({'where':{'role':[_0x4ac8('0x54'),_0x4ac8('0x55'),_0x4ac8('0x56')]},'attributes':['id',_0x4ac8('0x57'),_0x4ac8('0x2b'),'role',_0x4ac8('0x58'),_0x4ac8('0x59'),_0x4ac8('0x5a'),_0x4ac8('0x5b'),'allowmessenger','showWebBar'],'order':qs[_0x4ac8('0x3b')]('-online'),'include':[{'model':db['VoiceQueue'],'as':_0x4ac8('0x5c'),'attributes':['id',_0x4ac8('0x2b'),_0x4ac8('0x32')],'through':{'attributes':[]}}]})['then'](function(_0x47af1d){if(_0x47af1d){var _0x49f852=_0x35b61[_0x4ac8('0x56')][_0x4ac8('0x4b')]({'plain':!![]});if(!_0x49f852)throw new Error(_0x4ac8('0x5d'));if(_0x49f852[_0x4ac8('0x5e')]==='user'){return db[_0x4ac8('0x5f')][_0x4ac8('0x46')]({'where':{'name':_0x4ac8('0x60'),'userProfileId':_0x49f852[_0x4ac8('0x61')]},'raw':!![]})['then'](function(_0x4812c6){if(_0x4812c6){if(_0x4812c6[_0x4ac8('0x62')]===0x0){return db[_0x4ac8('0x63')][_0x4ac8('0x53')]({'where':{'sectionId':_0x4812c6['id']},'raw':!![]})[_0x4ac8('0x28')](function(_0x103c6e){var _0x38802b=[];if(_[_0x4ac8('0x64')](_0x103c6e)){_0x38802b=_[_0x4ac8('0x3f')](_0x47af1d,function(_0x372f4b){if(_0x372f4b['role']!==_0x4ac8('0x54')){return _0x372f4b;}});return _0x38802b;}else{for(var _0x59766d=0x0;_0x59766d<_0x47af1d[_0x4ac8('0x3a')];_0x59766d++){var _0x33f426=_0x47af1d[_0x59766d];if(_0x33f426[_0x4ac8('0x5e')]==='agent'){var _0x1c438f=_[_0x4ac8('0x46')](_0x103c6e,function(_0x5c60ba){return _0x5c60ba[_0x4ac8('0x65')]===_0x33f426['id'];});if(_0x1c438f)_0x38802b[_0x4ac8('0x66')](_0x33f426);}else{_0x38802b[_0x4ac8('0x66')](_0x33f426);}}return _0x38802b;}});}else{return _0x47af1d;}}else{var _0x4899b7=_[_0x4ac8('0x3f')](_0x47af1d,function(_0x495b32){if(_0x495b32[_0x4ac8('0x5e')]!==_0x4ac8('0x54')){return _0x495b32;}});return _0x4899b7;}});}else{return _0x47af1d;}}})['then'](function(_0x5515d2){var _0x428dc1=[];if(_0x5515d2){_0x3c4efc=_0x5515d2;for(var _0x12f6f6=0x0;_0x12f6f6<_0x5515d2[_0x4ac8('0x3a')];_0x12f6f6+=0x1){_0x3c4efc[_0x12f6f6][_0x4ac8('0x4c')]=[];_0x428dc1[_0x4ac8('0x66')](db[_0x4ac8('0x2f')][_0x4ac8('0x46')]({'where':{'FromId':[_0x35b61[_0x4ac8('0x56')]['id'],_0x5515d2[_0x12f6f6]['id']],'ToId':[_0x35b61['user']['id'],_0x5515d2[_0x12f6f6]['id']],'ChatGroupId':null},'attributes':['id','createdAt','FromId','ToId','read',_0x4ac8('0x48')],'order':qs[_0x4ac8('0x3b')](_0x4ac8('0x67')),'limit':0x1,'offset':0x0,'raw':!![]})[_0x4ac8('0x28')](wrapUser(_0x5515d2[_0x12f6f6])));}return BPromise[_0x4ac8('0x68')](_0x428dc1);}return[];})[_0x4ac8('0x28')](function(_0x4a9c01){return{'rows':_0x4a9c01,'count':_0x4a9c01[_0x4ac8('0x3a')]};})[_0x4ac8('0x28')](respondWithResult(_0x3cc5d3,null))[_0x4ac8('0x47')](handleError(_0x3cc5d3,null));};