Built motion from commit 25580385.|2.6.2
[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 _0x0da9=['-online','VoiceQueues','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','autoAssociation','UserProfileResource','isEmpty','resourceId','push','messages','FromId','-createdAt','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','mustache','util','sox','ejs','fs-extra','lodash','squel','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','defaults','redis','localhost','./chatInternalMessage.socket','register','status','end','offset','undefined','count','set','Content-Range','apply','reject','update','then','destroy','sendStatus','error','stack','name','rawAttributes','fieldName','type','key','model','map','query','keys','filters','intersection','attributes','fields','length','limit','order','sort','where','pick','filter','merge','VIRTUAL','options','include','rows','catch','params','ChatInternalMessage','find','create','body','describe','get','createdAt','lastMessage','lastMessageAt','YYYY-MM-DD\x20HH:mm:ss','getUsers','User','findAll','agent','admin','fullname','userpic','internal','lastLoginAt','allowmessenger','showWebBar'];(function(_0x233e8a,_0x3b4adf){var _0x49bedf=function(_0x152c8d){while(--_0x152c8d){_0x233e8a['push'](_0x233e8a['shift']());}};_0x49bedf(++_0x3b4adf);}(_0x0da9,0xe9));var _0x90da=function(_0x397c8d,_0xf0a1a4){_0x397c8d=_0x397c8d-0x0;var _0x1c5b0a=_0x0da9[_0x397c8d];return _0x1c5b0a;};'use strict';var emlformat=require(_0x90da('0x0'));var rimraf=require(_0x90da('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x90da('0x2'));var rp=require(_0x90da('0x3'));var moment=require(_0x90da('0x4'));var BPromise=require(_0x90da('0x5'));var Mustache=require(_0x90da('0x6'));var util=require(_0x90da('0x7'));var path=require('path');var sox=require(_0x90da('0x8'));var csv=require('to-csv');var ejs=require(_0x90da('0x9'));var fs=require('fs');var fs_extra=require(_0x90da('0xa'));var _=require(_0x90da('0xb'));var squel=require(_0x90da('0xc'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0x90da('0xd'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0x90da('0xe'));var Redis=require(_0x90da('0xf'));var authService=require(_0x90da('0x10'));var qs=require(_0x90da('0x11'));var as=require(_0x90da('0x12'));var hardwareService=require(_0x90da('0x13'));var logger=require(_0x90da('0x14'))(_0x90da('0x15'));var utils=require(_0x90da('0x16'));var config=require(_0x90da('0x17'));var licenseUtil=require(_0x90da('0x18'));var db=require(_0x90da('0x19'))['db'];config['redis']=_[_0x90da('0x1a')](config[_0x90da('0x1b')],{'host':_0x90da('0x1c'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config['redis']));require(_0x90da('0x1d'))[_0x90da('0x1e')](socket);function respondWithStatusCode(_0x4b5094,_0xa8c434){_0xa8c434=_0xa8c434||0xcc;return function(_0x2b70ae){if(_0x2b70ae){return _0x4b5094['sendStatus'](_0xa8c434);}return _0x4b5094[_0x90da('0x1f')](_0xa8c434)[_0x90da('0x20')]();};}function respondWithResult(_0x34f775,_0x9f75c6){_0x9f75c6=_0x9f75c6||0xc8;return function(_0x5399f0){if(_0x5399f0){return _0x34f775[_0x90da('0x1f')](_0x9f75c6)['json'](_0x5399f0);}};}function respondWithFilteredResult(_0x14f2a7,_0x1e5591){return function(_0x4cbf21){if(_0x4cbf21){var _0x5dc625=typeof _0x1e5591[_0x90da('0x21')]===_0x90da('0x22')&&typeof _0x1e5591['limit']===_0x90da('0x22');var _0x58d8f7=_0x4cbf21['count'];var _0x4d85e2=_0x5dc625?0x0:_0x1e5591[_0x90da('0x21')];var _0x2edf2b=_0x5dc625?_0x4cbf21[_0x90da('0x23')]:_0x1e5591[_0x90da('0x21')]+_0x1e5591['limit'];var _0x268ba7;if(_0x2edf2b>=_0x58d8f7){_0x2edf2b=_0x58d8f7;_0x268ba7=0xc8;}else{_0x268ba7=0xce;}_0x14f2a7[_0x90da('0x1f')](_0x268ba7);return _0x14f2a7[_0x90da('0x24')](_0x90da('0x25'),_0x4d85e2+'-'+_0x2edf2b+'/'+_0x58d8f7)['json'](_0x4cbf21);}return null;};}function patchUpdates(_0x4899c0){return function(_0x539205){try{jsonpatch[_0x90da('0x26')](_0x539205,_0x4899c0,!![]);}catch(_0x5412e6){return BPromise[_0x90da('0x27')](_0x5412e6);}return _0x539205['save']();};}function saveUpdates(_0x4fd5d9,_0x739a00){return function(_0x5f1a55){if(_0x5f1a55){return _0x5f1a55[_0x90da('0x28')](_0x4fd5d9)[_0x90da('0x29')](function(_0x2811b6){return _0x2811b6;});}return null;};}function removeEntity(_0x8f8ba5,_0x5b0eda){return function(_0x3398c5){if(_0x3398c5){return _0x3398c5[_0x90da('0x2a')]()[_0x90da('0x29')](function(){_0x8f8ba5['status'](0xcc)[_0x90da('0x20')]();});}};}function handleEntityNotFound(_0x3dc663,_0x1efcca){return function(_0x403d21){if(!_0x403d21){_0x3dc663[_0x90da('0x2b')](0x194);}return _0x403d21;};}function handleError(_0x4a8129,_0x32ad86){_0x32ad86=_0x32ad86||0x1f4;return function(_0x3d6246){logger[_0x90da('0x2c')](_0x3d6246[_0x90da('0x2d')]);if(_0x3d6246[_0x90da('0x2e')]){delete _0x3d6246[_0x90da('0x2e')];}_0x4a8129[_0x90da('0x1f')](_0x32ad86)['send'](_0x3d6246);};}exports['index']=function(_0x52243b,_0x50bc9b){var _0x5c253c={},_0x5544d2={},_0x54b06f={'count':0x0,'rows':[]};var _0x45b25d=_['map'](db['ChatInternalMessage'][_0x90da('0x2f')],function(_0x10ddbf){return{'name':_0x10ddbf[_0x90da('0x30')],'type':_0x10ddbf[_0x90da('0x31')][_0x90da('0x32')]};});_0x5544d2[_0x90da('0x33')]=_[_0x90da('0x34')](_0x45b25d,_0x90da('0x2e'));_0x5544d2[_0x90da('0x35')]=_[_0x90da('0x36')](_0x52243b[_0x90da('0x35')]);_0x5544d2[_0x90da('0x37')]=_[_0x90da('0x38')](_0x5544d2[_0x90da('0x33')],_0x5544d2[_0x90da('0x35')]);_0x5c253c[_0x90da('0x39')]=_[_0x90da('0x38')](_0x5544d2[_0x90da('0x33')],qs[_0x90da('0x3a')](_0x52243b['query']['fields']));_0x5c253c[_0x90da('0x39')]=_0x5c253c[_0x90da('0x39')][_0x90da('0x3b')]?_0x5c253c[_0x90da('0x39')]:_0x5544d2[_0x90da('0x33')];if(!_0x52243b['query']['hasOwnProperty']('nolimit')){_0x5c253c[_0x90da('0x3c')]=qs[_0x90da('0x3c')](_0x52243b[_0x90da('0x35')]['limit']);_0x5c253c[_0x90da('0x21')]=qs[_0x90da('0x21')](_0x52243b[_0x90da('0x35')][_0x90da('0x21')]);}_0x5c253c[_0x90da('0x3d')]=qs[_0x90da('0x3e')](_0x52243b['query'][_0x90da('0x3e')]);_0x5c253c[_0x90da('0x3f')]=qs['filters'](_[_0x90da('0x40')](_0x52243b['query'],_0x5544d2[_0x90da('0x37')]),_0x45b25d);if(_0x52243b[_0x90da('0x35')][_0x90da('0x41')]){_0x5c253c[_0x90da('0x3f')]=_[_0x90da('0x42')](_0x5c253c['where'],{'$or':_[_0x90da('0x34')](_0x45b25d,function(_0xff7f71){if(_0xff7f71[_0x90da('0x31')]!==_0x90da('0x43')){var _0x1b1df1={};_0x1b1df1[_0xff7f71[_0x90da('0x2e')]]={'$like':'%'+_0x52243b['query']['filter']+'%'};return _0x1b1df1;}})});}_0x5c253c=_[_0x90da('0x42')]({},_0x5c253c,_0x52243b[_0x90da('0x44')]);var _0x36ac7a={'where':_0x5c253c['where']};return db['ChatInternalMessage']['count'](_0x36ac7a)[_0x90da('0x29')](function(_0x56f489){_0x54b06f['count']=_0x56f489;if(_0x52243b[_0x90da('0x35')]['includeAll']){_0x5c253c[_0x90da('0x45')]=[{'all':!![]}];}return db['ChatInternalMessage']['findAll'](_0x5c253c);})['then'](function(_0x407c00){_0x54b06f[_0x90da('0x46')]=_0x407c00;return _0x54b06f;})['then'](respondWithFilteredResult(_0x50bc9b,_0x5c253c))[_0x90da('0x47')](handleError(_0x50bc9b,null));};exports['show']=function(_0x106a17,_0x3f42f2){var _0xca5f95={'raw':!![],'where':{'id':_0x106a17[_0x90da('0x48')]['id']}},_0x5997e2={};_0x5997e2[_0x90da('0x33')]=_[_0x90da('0x36')](db[_0x90da('0x49')]['rawAttributes']);_0x5997e2[_0x90da('0x35')]=_[_0x90da('0x36')](_0x106a17[_0x90da('0x35')]);_0x5997e2[_0x90da('0x37')]=_[_0x90da('0x38')](_0x5997e2['model'],_0x5997e2[_0x90da('0x35')]);_0xca5f95[_0x90da('0x39')]=_[_0x90da('0x38')](_0x5997e2[_0x90da('0x33')],qs['fields'](_0x106a17[_0x90da('0x35')]['fields']));_0xca5f95['attributes']=_0xca5f95[_0x90da('0x39')]['length']?_0xca5f95['attributes']:_0x5997e2[_0x90da('0x33')];if(_0x106a17[_0x90da('0x35')]['includeAll']){_0xca5f95[_0x90da('0x45')]=[{'all':!![]}];}_0xca5f95=_[_0x90da('0x42')]({},_0xca5f95,_0x106a17['options']);return db[_0x90da('0x49')][_0x90da('0x4a')](_0xca5f95)['then'](handleEntityNotFound(_0x3f42f2,null))['then'](respondWithResult(_0x3f42f2,null))['catch'](handleError(_0x3f42f2,null));};exports[_0x90da('0x4b')]=function(_0x2cb53b,_0xdffe3d){return db[_0x90da('0x49')]['create'](_0x2cb53b[_0x90da('0x4c')],{})[_0x90da('0x29')](respondWithResult(_0xdffe3d,0xc9))[_0x90da('0x47')](handleError(_0xdffe3d,null));};exports[_0x90da('0x28')]=function(_0x178924,_0x363fa2){if(_0x178924[_0x90da('0x4c')]['id']){delete _0x178924[_0x90da('0x4c')]['id'];}return db[_0x90da('0x49')]['find']({'where':{'id':_0x178924[_0x90da('0x48')]['id']}})['then'](handleEntityNotFound(_0x363fa2,null))[_0x90da('0x29')](saveUpdates(_0x178924[_0x90da('0x4c')],null))[_0x90da('0x29')](respondWithResult(_0x363fa2,null))[_0x90da('0x47')](handleError(_0x363fa2,null));};exports[_0x90da('0x2a')]=function(_0x174095,_0x474540){return db[_0x90da('0x49')]['find']({'where':{'id':_0x174095[_0x90da('0x48')]['id']}})['then'](handleEntityNotFound(_0x474540,null))[_0x90da('0x29')](removeEntity(_0x474540,null))[_0x90da('0x47')](handleError(_0x474540,null));};exports[_0x90da('0x4d')]=function(_0x58475f,_0x42473d){return db[_0x90da('0x49')][_0x90da('0x4d')]()[_0x90da('0x29')](respondWithResult(_0x42473d,null))[_0x90da('0x47')](handleError(_0x42473d,null));};function wrapUser(_0x4ee34d){return function(_0xf3dde9){var _0xf4e2c6=_0x4ee34d[_0x90da('0x4e')]({'plain':!![]});_0xf4e2c6['messages']=[];if(_0xf3dde9){_0xf4e2c6['lastMessageAt']=_0xf3dde9[_0x90da('0x4f')];_0xf4e2c6[_0x90da('0x50')]=_0xf3dde9;}else{_0xf4e2c6[_0x90da('0x51')]=moment(0x0)['format'](_0x90da('0x52'));_0xf4e2c6['lastMessage']={};}return _0xf4e2c6;};}exports[_0x90da('0x53')]=function(_0x9df4db,_0x59d28c,_0x4672d1){var _0x2b8378=[];return db[_0x90da('0x54')][_0x90da('0x55')]({'where':{'role':[_0x90da('0x56'),_0x90da('0x57'),'user']},'attributes':['id',_0x90da('0x58'),_0x90da('0x2e'),'role',_0x90da('0x59'),_0x90da('0x5a'),'online',_0x90da('0x5b'),_0x90da('0x5c'),_0x90da('0x5d')],'order':qs['sort'](_0x90da('0x5e')),'include':[{'model':db['VoiceQueue'],'as':_0x90da('0x5f'),'attributes':['id','name','type'],'through':{'attributes':[]}}]})[_0x90da('0x29')](function(_0x5e48da){if(_0x5e48da){var _0x5602ff=_0x9df4db[_0x90da('0x60')][_0x90da('0x4e')]({'plain':!![]});if(!_0x5602ff)throw new Error(_0x90da('0x61'));if(_0x5602ff[_0x90da('0x62')]===_0x90da('0x60')){return db[_0x90da('0x63')][_0x90da('0x4a')]({'where':{'name':'Agents','userProfileId':_0x5602ff[_0x90da('0x64')]},'raw':!![]})[_0x90da('0x29')](function(_0x648933){if(_0x648933){if(_0x648933[_0x90da('0x65')]===0x0){return db[_0x90da('0x66')][_0x90da('0x55')]({'where':{'sectionId':_0x648933['id']},'raw':!![]})[_0x90da('0x29')](function(_0x1ddd39){var _0x768493=[];if(_[_0x90da('0x67')](_0x1ddd39)){_0x768493=_[_0x90da('0x41')](_0x5e48da,function(_0xbc65b){if(_0xbc65b[_0x90da('0x62')]!==_0x90da('0x56')){return _0xbc65b;}});return _0x768493;}else{for(var _0x229998=0x0;_0x229998<_0x5e48da[_0x90da('0x3b')];_0x229998++){var _0x464f92=_0x5e48da[_0x229998];if(_0x464f92[_0x90da('0x62')]===_0x90da('0x56')){var _0x26e850=_[_0x90da('0x4a')](_0x1ddd39,function(_0xae2fdf){return _0xae2fdf[_0x90da('0x68')]===_0x464f92['id'];});if(_0x26e850)_0x768493[_0x90da('0x69')](_0x464f92);}else{_0x768493[_0x90da('0x69')](_0x464f92);}}return _0x768493;}});}else{return _0x5e48da;}}else{var _0x3e86a4=_[_0x90da('0x41')](_0x5e48da,function(_0x319589){if(_0x319589[_0x90da('0x62')]!==_0x90da('0x56')){return _0x319589;}});return _0x3e86a4;}});}else{return _0x5e48da;}}})[_0x90da('0x29')](function(_0x10ca34){var _0x2ee9c4=[];if(_0x10ca34){_0x2b8378=_0x10ca34;for(var _0x5b9997=0x0;_0x5b9997<_0x10ca34[_0x90da('0x3b')];_0x5b9997+=0x1){_0x2b8378[_0x5b9997][_0x90da('0x6a')]=[];_0x2ee9c4['push'](db[_0x90da('0x49')][_0x90da('0x4a')]({'where':{'FromId':[_0x9df4db['user']['id'],_0x10ca34[_0x5b9997]['id']],'ToId':[_0x9df4db['user']['id'],_0x10ca34[_0x5b9997]['id']],'ChatGroupId':null},'attributes':['id',_0x90da('0x4f'),_0x90da('0x6b'),'ToId','read',_0x90da('0x4c')],'order':qs[_0x90da('0x3e')](_0x90da('0x6c')),'limit':0x1,'offset':0x0,'raw':!![]})[_0x90da('0x29')](wrapUser(_0x10ca34[_0x5b9997])));}return BPromise['all'](_0x2ee9c4);}return[];})[_0x90da('0x29')](function(_0x295e8a){return{'rows':_0x295e8a,'count':_0x295e8a['length']};})[_0x90da('0x29')](respondWithResult(_0x59d28c,null))[_0x90da('0x47')](handleError(_0x59d28c,null));};