43a4b7e86bb8f00fb34d1538077d6fa70f809afa
[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 _0xea05=['user','Unable\x20to\x20retrieve\x20the\x20current\x20user','UserProfileSection','Agents','autoAssociation','UserProfileResource','isEmpty','resourceId','push','messages','ToId','read','-createdAt','all','eml-format','zip-dir','fast-json-patch','moment','bluebird','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/license/util','../../mysqldb','redis','defaults','localhost','socket.io-emitter','./chatInternalMessage.socket','register','status','end','json','limit','count','offset','apply','reject','save','update','destroy','then','sendStatus','error','stack','name','index','fieldName','model','query','keys','intersection','attributes','fields','length','nolimit','order','sort','where','pick','filters','map','type','VIRTUAL','filter','merge','options','ChatInternalMessage','includeAll','include','findAll','rows','show','params','rawAttributes','find','catch','body','describe','get','createdAt','lastMessage','lastMessageAt','format','YYYY-MM-DD\x20HH:mm:ss','getUsers','User','agent','admin','fullname','role','userpic','internal','online','lastLoginAt','showWebBar','-online','VoiceQueue','VoiceQueues'];(function(_0x5c9b80,_0x2b2722){var _0x363d13=function(_0x3c77ba){while(--_0x3c77ba){_0x5c9b80['push'](_0x5c9b80['shift']());}};_0x363d13(++_0x2b2722);}(_0xea05,0x83));var _0x5ea0=function(_0x84b8c7,_0x5962ba){_0x84b8c7=_0x84b8c7-0x0;var _0x3aadf3=_0xea05[_0x84b8c7];return _0x3aadf3;};'use strict';var emlformat=require(_0x5ea0('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x5ea0('0x1'));var jsonpatch=require(_0x5ea0('0x2'));var rp=require('request-promise');var moment=require(_0x5ea0('0x3'));var BPromise=require(_0x5ea0('0x4'));var Mustache=require('mustache');var util=require(_0x5ea0('0x5'));var path=require(_0x5ea0('0x6'));var sox=require(_0x5ea0('0x7'));var csv=require(_0x5ea0('0x8'));var ejs=require(_0x5ea0('0x9'));var fs=require('fs');var fs_extra=require(_0x5ea0('0xa'));var _=require(_0x5ea0('0xb'));var squel=require(_0x5ea0('0xc'));var crypto=require(_0x5ea0('0xd'));var jsforce=require(_0x5ea0('0xe'));var deskjs=require(_0x5ea0('0xf'));var toCsv=require(_0x5ea0('0x8'));var querystring=require(_0x5ea0('0x10'));var Papa=require(_0x5ea0('0x11'));var Redis=require(_0x5ea0('0x12'));var authService=require(_0x5ea0('0x13'));var qs=require(_0x5ea0('0x14'));var as=require(_0x5ea0('0x15'));var hardwareService=require(_0x5ea0('0x16'));var logger=require(_0x5ea0('0x17'))(_0x5ea0('0x18'));var utils=require(_0x5ea0('0x19'));var config=require('../../config/environment');var licenseUtil=require(_0x5ea0('0x1a'));var db=require(_0x5ea0('0x1b'))['db'];config[_0x5ea0('0x1c')]=_[_0x5ea0('0x1d')](config[_0x5ea0('0x1c')],{'host':_0x5ea0('0x1e'),'port':0x18eb});var socket=require(_0x5ea0('0x1f'))(new Redis(config[_0x5ea0('0x1c')]));require(_0x5ea0('0x20'))[_0x5ea0('0x21')](socket);function respondWithStatusCode(_0x27f9a0,_0x2e9a80){_0x2e9a80=_0x2e9a80||0xcc;return function(_0x226785){if(_0x226785){return _0x27f9a0['sendStatus'](_0x2e9a80);}return _0x27f9a0[_0x5ea0('0x22')](_0x2e9a80)[_0x5ea0('0x23')]();};}function respondWithResult(_0xc2c60d,_0x2e5e97){_0x2e5e97=_0x2e5e97||0xc8;return function(_0x29a37c){if(_0x29a37c){return _0xc2c60d[_0x5ea0('0x22')](_0x2e5e97)[_0x5ea0('0x24')](_0x29a37c);}};}function respondWithFilteredResult(_0x47d8c5,_0x598f47){return function(_0x16db39){if(_0x16db39){var _0x586cd5=typeof _0x598f47['offset']==='undefined'&&typeof _0x598f47[_0x5ea0('0x25')]==='undefined';var _0x56467d=_0x16db39[_0x5ea0('0x26')];var _0x4cb2fc=_0x586cd5?0x0:_0x598f47[_0x5ea0('0x27')];var _0x434f02=_0x586cd5?_0x16db39[_0x5ea0('0x26')]:_0x598f47[_0x5ea0('0x27')]+_0x598f47[_0x5ea0('0x25')];var _0xeaefd8;if(_0x434f02>=_0x56467d){_0x434f02=_0x56467d;_0xeaefd8=0xc8;}else{_0xeaefd8=0xce;}_0x47d8c5['status'](_0xeaefd8);return _0x47d8c5['set']('Content-Range',_0x4cb2fc+'-'+_0x434f02+'/'+_0x56467d)[_0x5ea0('0x24')](_0x16db39);}return null;};}function patchUpdates(_0xbce8ce){return function(_0x2bb4db){try{jsonpatch[_0x5ea0('0x28')](_0x2bb4db,_0xbce8ce,!![]);}catch(_0x5a8b46){return BPromise[_0x5ea0('0x29')](_0x5a8b46);}return _0x2bb4db[_0x5ea0('0x2a')]();};}function saveUpdates(_0x4a2d3b,_0x245752){return function(_0x56ed3e){if(_0x56ed3e){return _0x56ed3e[_0x5ea0('0x2b')](_0x4a2d3b)['then'](function(_0x3dadc7){return _0x3dadc7;});}return null;};}function removeEntity(_0x37a659,_0x14cfb5){return function(_0x48afb8){if(_0x48afb8){return _0x48afb8[_0x5ea0('0x2c')]()[_0x5ea0('0x2d')](function(){_0x37a659[_0x5ea0('0x22')](0xcc)[_0x5ea0('0x23')]();});}};}function handleEntityNotFound(_0x5e2f4e,_0x4ac6ec){return function(_0x57e07f){if(!_0x57e07f){_0x5e2f4e[_0x5ea0('0x2e')](0x194);}return _0x57e07f;};}function handleError(_0x1ead56,_0x1d6118){_0x1d6118=_0x1d6118||0x1f4;return function(_0x2bb165){logger[_0x5ea0('0x2f')](_0x2bb165[_0x5ea0('0x30')]);if(_0x2bb165[_0x5ea0('0x31')]){delete _0x2bb165[_0x5ea0('0x31')];}_0x1ead56[_0x5ea0('0x22')](_0x1d6118)['send'](_0x2bb165);};}exports[_0x5ea0('0x32')]=function(_0x379a8a,_0x31491e){var _0x2c095b={},_0x36c3c7={},_0x568322={'count':0x0,'rows':[]};var _0x42061c=_['map'](db['ChatInternalMessage']['rawAttributes'],function(_0x83e0f5){return{'name':_0x83e0f5[_0x5ea0('0x33')],'type':_0x83e0f5['type']['key']};});_0x36c3c7[_0x5ea0('0x34')]=_['map'](_0x42061c,_0x5ea0('0x31'));_0x36c3c7[_0x5ea0('0x35')]=_[_0x5ea0('0x36')](_0x379a8a[_0x5ea0('0x35')]);_0x36c3c7['filters']=_[_0x5ea0('0x37')](_0x36c3c7[_0x5ea0('0x34')],_0x36c3c7[_0x5ea0('0x35')]);_0x2c095b[_0x5ea0('0x38')]=_[_0x5ea0('0x37')](_0x36c3c7[_0x5ea0('0x34')],qs[_0x5ea0('0x39')](_0x379a8a[_0x5ea0('0x35')][_0x5ea0('0x39')]));_0x2c095b[_0x5ea0('0x38')]=_0x2c095b[_0x5ea0('0x38')][_0x5ea0('0x3a')]?_0x2c095b['attributes']:_0x36c3c7['model'];if(!_0x379a8a[_0x5ea0('0x35')]['hasOwnProperty'](_0x5ea0('0x3b'))){_0x2c095b['limit']=qs[_0x5ea0('0x25')](_0x379a8a[_0x5ea0('0x35')][_0x5ea0('0x25')]);_0x2c095b[_0x5ea0('0x27')]=qs['offset'](_0x379a8a['query'][_0x5ea0('0x27')]);}_0x2c095b[_0x5ea0('0x3c')]=qs[_0x5ea0('0x3d')](_0x379a8a[_0x5ea0('0x35')]['sort']);_0x2c095b[_0x5ea0('0x3e')]=qs['filters'](_[_0x5ea0('0x3f')](_0x379a8a[_0x5ea0('0x35')],_0x36c3c7[_0x5ea0('0x40')]),_0x42061c);if(_0x379a8a[_0x5ea0('0x35')]['filter']){_0x2c095b[_0x5ea0('0x3e')]=_['merge'](_0x2c095b[_0x5ea0('0x3e')],{'$or':_[_0x5ea0('0x41')](_0x42061c,function(_0x44000a){if(_0x44000a[_0x5ea0('0x42')]!==_0x5ea0('0x43')){var _0x3e98d6={};_0x3e98d6[_0x44000a['name']]={'$like':'%'+_0x379a8a[_0x5ea0('0x35')][_0x5ea0('0x44')]+'%'};return _0x3e98d6;}})});}_0x2c095b=_[_0x5ea0('0x45')]({},_0x2c095b,_0x379a8a[_0x5ea0('0x46')]);var _0x484df1={'where':_0x2c095b[_0x5ea0('0x3e')]};return db[_0x5ea0('0x47')]['count'](_0x484df1)[_0x5ea0('0x2d')](function(_0xaf5df4){_0x568322[_0x5ea0('0x26')]=_0xaf5df4;if(_0x379a8a[_0x5ea0('0x35')][_0x5ea0('0x48')]){_0x2c095b[_0x5ea0('0x49')]=[{'all':!![]}];}return db['ChatInternalMessage'][_0x5ea0('0x4a')](_0x2c095b);})['then'](function(_0x3559cd){_0x568322[_0x5ea0('0x4b')]=_0x3559cd;return _0x568322;})[_0x5ea0('0x2d')](respondWithFilteredResult(_0x31491e,_0x2c095b))['catch'](handleError(_0x31491e,null));};exports[_0x5ea0('0x4c')]=function(_0x2213c8,_0x2222a8){var _0xb1a8f3={'raw':!![],'where':{'id':_0x2213c8[_0x5ea0('0x4d')]['id']}},_0x4ce40b={};_0x4ce40b['model']=_[_0x5ea0('0x36')](db[_0x5ea0('0x47')][_0x5ea0('0x4e')]);_0x4ce40b[_0x5ea0('0x35')]=_[_0x5ea0('0x36')](_0x2213c8[_0x5ea0('0x35')]);_0x4ce40b[_0x5ea0('0x40')]=_['intersection'](_0x4ce40b['model'],_0x4ce40b[_0x5ea0('0x35')]);_0xb1a8f3[_0x5ea0('0x38')]=_[_0x5ea0('0x37')](_0x4ce40b[_0x5ea0('0x34')],qs[_0x5ea0('0x39')](_0x2213c8['query'][_0x5ea0('0x39')]));_0xb1a8f3['attributes']=_0xb1a8f3['attributes']['length']?_0xb1a8f3[_0x5ea0('0x38')]:_0x4ce40b['model'];if(_0x2213c8['query'][_0x5ea0('0x48')]){_0xb1a8f3['include']=[{'all':!![]}];}_0xb1a8f3=_['merge']({},_0xb1a8f3,_0x2213c8[_0x5ea0('0x46')]);return db['ChatInternalMessage'][_0x5ea0('0x4f')](_0xb1a8f3)[_0x5ea0('0x2d')](handleEntityNotFound(_0x2222a8,null))[_0x5ea0('0x2d')](respondWithResult(_0x2222a8,null))[_0x5ea0('0x50')](handleError(_0x2222a8,null));};exports['create']=function(_0x37b7d4,_0x3aa424){return db[_0x5ea0('0x47')]['create'](_0x37b7d4['body'],{})[_0x5ea0('0x2d')](respondWithResult(_0x3aa424,0xc9))[_0x5ea0('0x50')](handleError(_0x3aa424,null));};exports[_0x5ea0('0x2b')]=function(_0x1b64c2,_0x4f7f52){if(_0x1b64c2['body']['id']){delete _0x1b64c2[_0x5ea0('0x51')]['id'];}return db[_0x5ea0('0x47')][_0x5ea0('0x4f')]({'where':{'id':_0x1b64c2[_0x5ea0('0x4d')]['id']}})[_0x5ea0('0x2d')](handleEntityNotFound(_0x4f7f52,null))[_0x5ea0('0x2d')](saveUpdates(_0x1b64c2[_0x5ea0('0x51')],null))[_0x5ea0('0x2d')](respondWithResult(_0x4f7f52,null))[_0x5ea0('0x50')](handleError(_0x4f7f52,null));};exports[_0x5ea0('0x2c')]=function(_0x51b1d5,_0x3351d6){return db[_0x5ea0('0x47')][_0x5ea0('0x4f')]({'where':{'id':_0x51b1d5[_0x5ea0('0x4d')]['id']}})[_0x5ea0('0x2d')](handleEntityNotFound(_0x3351d6,null))['then'](removeEntity(_0x3351d6,null))['catch'](handleError(_0x3351d6,null));};exports[_0x5ea0('0x52')]=function(_0x25862d,_0x24702e){return db[_0x5ea0('0x47')]['describe']()[_0x5ea0('0x2d')](respondWithResult(_0x24702e,null))[_0x5ea0('0x50')](handleError(_0x24702e,null));};function wrapUser(_0x2ecb8d){return function(_0x4a7a67){var _0x2ba0cd=_0x2ecb8d[_0x5ea0('0x53')]({'plain':!![]});_0x2ba0cd['messages']=[];if(_0x4a7a67){_0x2ba0cd['lastMessageAt']=_0x4a7a67[_0x5ea0('0x54')];_0x2ba0cd[_0x5ea0('0x55')]=_0x4a7a67;}else{_0x2ba0cd[_0x5ea0('0x56')]=moment(0x0)[_0x5ea0('0x57')](_0x5ea0('0x58'));_0x2ba0cd[_0x5ea0('0x55')]={};}return _0x2ba0cd;};}exports[_0x5ea0('0x59')]=function(_0xf22317,_0x5923f3,_0x22a509){var _0x1c7ec9=[];return db[_0x5ea0('0x5a')][_0x5ea0('0x4a')]({'where':{'role':[_0x5ea0('0x5b'),_0x5ea0('0x5c'),'user']},'attributes':['id',_0x5ea0('0x5d'),'name',_0x5ea0('0x5e'),_0x5ea0('0x5f'),_0x5ea0('0x60'),_0x5ea0('0x61'),_0x5ea0('0x62'),'allowmessenger',_0x5ea0('0x63')],'order':qs[_0x5ea0('0x3d')](_0x5ea0('0x64')),'include':[{'model':db[_0x5ea0('0x65')],'as':_0x5ea0('0x66'),'attributes':['id',_0x5ea0('0x31'),_0x5ea0('0x42')],'through':{'attributes':[]}}]})['then'](function(_0xc2f8e){if(_0xc2f8e){var _0x5e06f3=_0xf22317[_0x5ea0('0x67')][_0x5ea0('0x53')]({'plain':!![]});if(!_0x5e06f3)throw new Error(_0x5ea0('0x68'));if(_0x5e06f3[_0x5ea0('0x5e')]===_0x5ea0('0x67')){return db[_0x5ea0('0x69')][_0x5ea0('0x4f')]({'where':{'name':_0x5ea0('0x6a'),'userProfileId':_0x5e06f3['userProfileId']},'raw':!![]})['then'](function(_0x4f0f13){if(_0x4f0f13){if(_0x4f0f13[_0x5ea0('0x6b')]===0x0){return db[_0x5ea0('0x6c')]['findAll']({'where':{'sectionId':_0x4f0f13['id']},'raw':!![]})['then'](function(_0x19d850){var _0x2c8eb1=[];if(_[_0x5ea0('0x6d')](_0x19d850)){_0x2c8eb1=_[_0x5ea0('0x44')](_0xc2f8e,function(_0xfed606){if(_0xfed606[_0x5ea0('0x5e')]!=='agent'){return _0xfed606;}});return _0x2c8eb1;}else{for(var _0x2903a5=0x0;_0x2903a5<_0xc2f8e[_0x5ea0('0x3a')];_0x2903a5++){var _0x11ac33=_0xc2f8e[_0x2903a5];if(_0x11ac33[_0x5ea0('0x5e')]===_0x5ea0('0x5b')){var _0x183b8e=_[_0x5ea0('0x4f')](_0x19d850,function(_0x1a4242){return _0x1a4242[_0x5ea0('0x6e')]===_0x11ac33['id'];});if(_0x183b8e)_0x2c8eb1['push'](_0x11ac33);}else{_0x2c8eb1[_0x5ea0('0x6f')](_0x11ac33);}}return _0x2c8eb1;}});}else{return _0xc2f8e;}}else{var _0x36270a=_[_0x5ea0('0x44')](_0xc2f8e,function(_0x24af22){if(_0x24af22['role']!==_0x5ea0('0x5b')){return _0x24af22;}});return _0x36270a;}});}else{return _0xc2f8e;}}})[_0x5ea0('0x2d')](function(_0x1e0bd7){var _0x39123c=[];if(_0x1e0bd7){_0x1c7ec9=_0x1e0bd7;for(var _0x4cb482=0x0;_0x4cb482<_0x1e0bd7['length'];_0x4cb482+=0x1){_0x1c7ec9[_0x4cb482][_0x5ea0('0x70')]=[];_0x39123c[_0x5ea0('0x6f')](db[_0x5ea0('0x47')]['find']({'where':{'FromId':[_0xf22317[_0x5ea0('0x67')]['id'],_0x1e0bd7[_0x4cb482]['id']],'ToId':[_0xf22317[_0x5ea0('0x67')]['id'],_0x1e0bd7[_0x4cb482]['id']],'ChatGroupId':null},'attributes':['id','createdAt','FromId',_0x5ea0('0x71'),_0x5ea0('0x72'),_0x5ea0('0x51')],'order':qs[_0x5ea0('0x3d')](_0x5ea0('0x73')),'limit':0x1,'offset':0x0,'raw':!![]})[_0x5ea0('0x2d')](wrapUser(_0x1e0bd7[_0x4cb482])));}return BPromise[_0x5ea0('0x74')](_0x39123c);}return[];})[_0x5ea0('0x2d')](function(_0x37919f){return{'rows':_0x37919f,'count':_0x37919f['length']};})['then'](respondWithResult(_0x5923f3,null))[_0x5ea0('0x50')](handleError(_0x5923f3,null));};