88c1737c8dde08aee83d864905914418d0d76b94
[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 _0x6783=['sendStatus','status','end','offset','undefined','limit','count','Content-Range','json','save','update','destroy','then','error','index','ChatInternalMessage','fieldName','type','key','model','map','query','keys','intersection','attributes','fields','length','hasOwnProperty','nolimit','sort','filters','pick','where','name','filter','merge','options','includeAll','findAll','catch','find','create','body','params','describe','get','messages','lastMessageAt','createdAt','lastMessage','YYYY-MM-DD\x20HH:mm:ss','getUsers','agent','admin','fullname','role','internal','online','allowmessenger','showWebBar','VoiceQueue','VoiceQueues','Unable\x20to\x20retrieve\x20the\x20current\x20user','Agents','autoAssociation','UserProfileResource','isEmpty','resourceId','push','user','FromId','all','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','localhost','./chatInternalMessage.socket','register'];(function(_0x59c301,_0x359c50){var _0x3866b9=function(_0x2d380e){while(--_0x2d380e){_0x59c301['push'](_0x59c301['shift']());}};_0x3866b9(++_0x359c50);}(_0x6783,0xae));var _0x3678=function(_0x262122,_0x3d5c07){_0x262122=_0x262122-0x0;var _0x59a4b0=_0x6783[_0x262122];return _0x59a4b0;};'use strict';var emlformat=require(_0x3678('0x0'));var rimraf=require(_0x3678('0x1'));var zipdir=require(_0x3678('0x2'));var jsonpatch=require(_0x3678('0x3'));var rp=require(_0x3678('0x4'));var moment=require(_0x3678('0x5'));var BPromise=require('bluebird');var Mustache=require(_0x3678('0x6'));var util=require(_0x3678('0x7'));var path=require(_0x3678('0x8'));var sox=require(_0x3678('0x9'));var csv=require(_0x3678('0xa'));var ejs=require(_0x3678('0xb'));var fs=require('fs');var fs_extra=require(_0x3678('0xc'));var _=require(_0x3678('0xd'));var squel=require(_0x3678('0xe'));var crypto=require(_0x3678('0xf'));var jsforce=require(_0x3678('0x10'));var deskjs=require('desk.js');var toCsv=require(_0x3678('0xa'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0x3678('0x11'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x3678('0x12'));var logger=require(_0x3678('0x13'))(_0x3678('0x14'));var utils=require(_0x3678('0x15'));var config=require(_0x3678('0x16'));var licenseUtil=require(_0x3678('0x17'));var db=require(_0x3678('0x18'))['db'];config[_0x3678('0x19')]=_[_0x3678('0x1a')](config['redis'],{'host':_0x3678('0x1b'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x3678('0x19')]));require(_0x3678('0x1c'))[_0x3678('0x1d')](socket);function respondWithStatusCode(_0x4edcf4,_0x30fcc7){_0x30fcc7=_0x30fcc7||0xcc;return function(_0xd984ff){if(_0xd984ff){return _0x4edcf4[_0x3678('0x1e')](_0x30fcc7);}return _0x4edcf4[_0x3678('0x1f')](_0x30fcc7)[_0x3678('0x20')]();};}function respondWithResult(_0x34afa4,_0x287693){_0x287693=_0x287693||0xc8;return function(_0x576e69){if(_0x576e69){return _0x34afa4[_0x3678('0x1f')](_0x287693)['json'](_0x576e69);}};}function respondWithFilteredResult(_0xc5bbf4,_0x5e8cab){return function(_0x4e1d19){if(_0x4e1d19){var _0x4035a7=typeof _0x5e8cab[_0x3678('0x21')]===_0x3678('0x22')&&typeof _0x5e8cab[_0x3678('0x23')]===_0x3678('0x22');var _0x20606f=_0x4e1d19[_0x3678('0x24')];var _0xb5d7fc=_0x4035a7?0x0:_0x5e8cab[_0x3678('0x21')];var _0x2ba7fc=_0x4035a7?_0x4e1d19['count']:_0x5e8cab[_0x3678('0x21')]+_0x5e8cab['limit'];var _0xc05cd3;if(_0x2ba7fc>=_0x20606f){_0x2ba7fc=_0x20606f;_0xc05cd3=0xc8;}else{_0xc05cd3=0xce;}_0xc5bbf4['status'](_0xc05cd3);return _0xc5bbf4['set'](_0x3678('0x25'),_0xb5d7fc+'-'+_0x2ba7fc+'/'+_0x20606f)[_0x3678('0x26')](_0x4e1d19);}return null;};}function patchUpdates(_0x1c1765){return function(_0x23ec5d){try{jsonpatch['apply'](_0x23ec5d,_0x1c1765,!![]);}catch(_0x250a1c){return BPromise['reject'](_0x250a1c);}return _0x23ec5d[_0x3678('0x27')]();};}function saveUpdates(_0x203893,_0x153388){return function(_0x3a2d77){if(_0x3a2d77){return _0x3a2d77[_0x3678('0x28')](_0x203893)['then'](function(_0x50d01c){return _0x50d01c;});}return null;};}function removeEntity(_0x19c8d7,_0x3bfb22){return function(_0x54cb61){if(_0x54cb61){return _0x54cb61[_0x3678('0x29')]()[_0x3678('0x2a')](function(){_0x19c8d7[_0x3678('0x1f')](0xcc)[_0x3678('0x20')]();});}};}function handleEntityNotFound(_0x1fe3c3,_0x5b07a0){return function(_0x2fa1a1){if(!_0x2fa1a1){_0x1fe3c3[_0x3678('0x1e')](0x194);}return _0x2fa1a1;};}function handleError(_0x1825bb,_0x2520ba){_0x2520ba=_0x2520ba||0x1f4;return function(_0x2b749a){logger[_0x3678('0x2b')](_0x2b749a['stack']);if(_0x2b749a['name']){delete _0x2b749a['name'];}_0x1825bb['status'](_0x2520ba)['send'](_0x2b749a);};}exports[_0x3678('0x2c')]=function(_0x55f457,_0x397711){var _0x57e456={},_0x5038ba={},_0x2eeebe={'count':0x0,'rows':[]};var _0x4f5c51=_['map'](db[_0x3678('0x2d')]['rawAttributes'],function(_0x31f923){return{'name':_0x31f923[_0x3678('0x2e')],'type':_0x31f923[_0x3678('0x2f')][_0x3678('0x30')]};});_0x5038ba[_0x3678('0x31')]=_[_0x3678('0x32')](_0x4f5c51,'name');_0x5038ba[_0x3678('0x33')]=_[_0x3678('0x34')](_0x55f457[_0x3678('0x33')]);_0x5038ba['filters']=_[_0x3678('0x35')](_0x5038ba[_0x3678('0x31')],_0x5038ba[_0x3678('0x33')]);_0x57e456[_0x3678('0x36')]=_[_0x3678('0x35')](_0x5038ba['model'],qs['fields'](_0x55f457['query'][_0x3678('0x37')]));_0x57e456[_0x3678('0x36')]=_0x57e456[_0x3678('0x36')][_0x3678('0x38')]?_0x57e456['attributes']:_0x5038ba[_0x3678('0x31')];if(!_0x55f457[_0x3678('0x33')][_0x3678('0x39')](_0x3678('0x3a'))){_0x57e456[_0x3678('0x23')]=qs[_0x3678('0x23')](_0x55f457['query'][_0x3678('0x23')]);_0x57e456[_0x3678('0x21')]=qs[_0x3678('0x21')](_0x55f457[_0x3678('0x33')][_0x3678('0x21')]);}_0x57e456['order']=qs['sort'](_0x55f457['query'][_0x3678('0x3b')]);_0x57e456['where']=qs[_0x3678('0x3c')](_[_0x3678('0x3d')](_0x55f457['query'],_0x5038ba[_0x3678('0x3c')]),_0x4f5c51);if(_0x55f457[_0x3678('0x33')]['filter']){_0x57e456[_0x3678('0x3e')]=_['merge'](_0x57e456[_0x3678('0x3e')],{'$or':_[_0x3678('0x32')](_0x4f5c51,function(_0x4e7b1a){if(_0x4e7b1a[_0x3678('0x2f')]!=='VIRTUAL'){var _0x4c2f87={};_0x4c2f87[_0x4e7b1a[_0x3678('0x3f')]]={'$like':'%'+_0x55f457[_0x3678('0x33')][_0x3678('0x40')]+'%'};return _0x4c2f87;}})});}_0x57e456=_[_0x3678('0x41')]({},_0x57e456,_0x55f457[_0x3678('0x42')]);var _0x15da58={'where':_0x57e456[_0x3678('0x3e')]};return db['ChatInternalMessage']['count'](_0x15da58)[_0x3678('0x2a')](function(_0x2fc204){_0x2eeebe[_0x3678('0x24')]=_0x2fc204;if(_0x55f457[_0x3678('0x33')][_0x3678('0x43')]){_0x57e456['include']=[{'all':!![]}];}return db[_0x3678('0x2d')][_0x3678('0x44')](_0x57e456);})[_0x3678('0x2a')](function(_0x3b3a34){_0x2eeebe['rows']=_0x3b3a34;return _0x2eeebe;})['then'](respondWithFilteredResult(_0x397711,_0x57e456))[_0x3678('0x45')](handleError(_0x397711,null));};exports['show']=function(_0x3ac425,_0x28281a){var _0x28e621={'raw':!![],'where':{'id':_0x3ac425['params']['id']}},_0x527b89={};_0x527b89['model']=_[_0x3678('0x34')](db['ChatInternalMessage']['rawAttributes']);_0x527b89['query']=_[_0x3678('0x34')](_0x3ac425[_0x3678('0x33')]);_0x527b89[_0x3678('0x3c')]=_[_0x3678('0x35')](_0x527b89[_0x3678('0x31')],_0x527b89[_0x3678('0x33')]);_0x28e621[_0x3678('0x36')]=_[_0x3678('0x35')](_0x527b89['model'],qs[_0x3678('0x37')](_0x3ac425[_0x3678('0x33')]['fields']));_0x28e621[_0x3678('0x36')]=_0x28e621['attributes']['length']?_0x28e621[_0x3678('0x36')]:_0x527b89[_0x3678('0x31')];if(_0x3ac425['query'][_0x3678('0x43')]){_0x28e621['include']=[{'all':!![]}];}_0x28e621=_[_0x3678('0x41')]({},_0x28e621,_0x3ac425[_0x3678('0x42')]);return db['ChatInternalMessage'][_0x3678('0x46')](_0x28e621)[_0x3678('0x2a')](handleEntityNotFound(_0x28281a,null))[_0x3678('0x2a')](respondWithResult(_0x28281a,null))[_0x3678('0x45')](handleError(_0x28281a,null));};exports[_0x3678('0x47')]=function(_0x340e63,_0x285467){return db[_0x3678('0x2d')]['create'](_0x340e63[_0x3678('0x48')],{})['then'](respondWithResult(_0x285467,0xc9))['catch'](handleError(_0x285467,null));};exports[_0x3678('0x28')]=function(_0x545f80,_0x1b9089){if(_0x545f80[_0x3678('0x48')]['id']){delete _0x545f80[_0x3678('0x48')]['id'];}return db[_0x3678('0x2d')][_0x3678('0x46')]({'where':{'id':_0x545f80[_0x3678('0x49')]['id']}})['then'](handleEntityNotFound(_0x1b9089,null))[_0x3678('0x2a')](saveUpdates(_0x545f80[_0x3678('0x48')],null))[_0x3678('0x2a')](respondWithResult(_0x1b9089,null))['catch'](handleError(_0x1b9089,null));};exports['destroy']=function(_0x49dbbe,_0x521071){return db[_0x3678('0x2d')][_0x3678('0x46')]({'where':{'id':_0x49dbbe[_0x3678('0x49')]['id']}})[_0x3678('0x2a')](handleEntityNotFound(_0x521071,null))[_0x3678('0x2a')](removeEntity(_0x521071,null))[_0x3678('0x45')](handleError(_0x521071,null));};exports['describe']=function(_0x35ee25,_0x234bd7){return db[_0x3678('0x2d')][_0x3678('0x4a')]()[_0x3678('0x2a')](respondWithResult(_0x234bd7,null))[_0x3678('0x45')](handleError(_0x234bd7,null));};function wrapUser(_0x18aa9e){return function(_0x344986){var _0x2411e0=_0x18aa9e[_0x3678('0x4b')]({'plain':!![]});_0x2411e0[_0x3678('0x4c')]=[];if(_0x344986){_0x2411e0[_0x3678('0x4d')]=_0x344986[_0x3678('0x4e')];_0x2411e0[_0x3678('0x4f')]=_0x344986;}else{_0x2411e0[_0x3678('0x4d')]=moment(0x0)['format'](_0x3678('0x50'));_0x2411e0[_0x3678('0x4f')]={};}return _0x2411e0;};}exports[_0x3678('0x51')]=function(_0x26ebd8,_0x2d571a,_0x55ae47){var _0x16ff08=[];return db['User'][_0x3678('0x44')]({'where':{'role':[_0x3678('0x52'),_0x3678('0x53'),'user']},'attributes':['id',_0x3678('0x54'),_0x3678('0x3f'),_0x3678('0x55'),'userpic',_0x3678('0x56'),_0x3678('0x57'),'lastLoginAt',_0x3678('0x58'),_0x3678('0x59')],'order':qs[_0x3678('0x3b')]('-online'),'include':[{'model':db[_0x3678('0x5a')],'as':_0x3678('0x5b'),'attributes':['id','name',_0x3678('0x2f')],'through':{'attributes':[]}}]})['then'](function(_0x503325){if(_0x503325){var _0x6b1356=_0x26ebd8['user'][_0x3678('0x4b')]({'plain':!![]});if(!_0x6b1356)throw new Error(_0x3678('0x5c'));if(_0x6b1356[_0x3678('0x55')]==='user'){return db['UserProfileSection'][_0x3678('0x46')]({'where':{'name':_0x3678('0x5d'),'userProfileId':_0x6b1356['userProfileId']},'raw':!![]})[_0x3678('0x2a')](function(_0x3fc1cf){if(_0x3fc1cf){if(_0x3fc1cf[_0x3678('0x5e')]===0x0){return db[_0x3678('0x5f')][_0x3678('0x44')]({'where':{'sectionId':_0x3fc1cf['id']},'raw':!![]})[_0x3678('0x2a')](function(_0x47d3fe){var _0x356703=[];if(_[_0x3678('0x60')](_0x47d3fe)){_0x356703=_[_0x3678('0x40')](_0x503325,function(_0x2e86cc){if(_0x2e86cc[_0x3678('0x55')]!==_0x3678('0x52')){return _0x2e86cc;}});return _0x356703;}else{for(var _0x4045f7=0x0;_0x4045f7<_0x503325[_0x3678('0x38')];_0x4045f7++){var _0x574d5f=_0x503325[_0x4045f7];if(_0x574d5f[_0x3678('0x55')]===_0x3678('0x52')){var _0x2ffec9=_['find'](_0x47d3fe,function(_0x12d62d){return _0x12d62d[_0x3678('0x61')]===_0x574d5f['id'];});if(_0x2ffec9)_0x356703[_0x3678('0x62')](_0x574d5f);}else{_0x356703[_0x3678('0x62')](_0x574d5f);}}return _0x356703;}});}else{return _0x503325;}}else{var _0x294869=_['filter'](_0x503325,function(_0x1a171a){if(_0x1a171a['role']!==_0x3678('0x52')){return _0x1a171a;}});return _0x294869;}});}else{return _0x503325;}}})['then'](function(_0x6471ed){var _0x477273=[];if(_0x6471ed){_0x16ff08=_0x6471ed;for(var _0x38d305=0x0;_0x38d305<_0x6471ed[_0x3678('0x38')];_0x38d305+=0x1){_0x16ff08[_0x38d305][_0x3678('0x4c')]=[];_0x477273[_0x3678('0x62')](db['ChatInternalMessage'][_0x3678('0x46')]({'where':{'FromId':[_0x26ebd8[_0x3678('0x63')]['id'],_0x6471ed[_0x38d305]['id']],'ToId':[_0x26ebd8[_0x3678('0x63')]['id'],_0x6471ed[_0x38d305]['id']],'ChatGroupId':null},'attributes':['id','createdAt',_0x3678('0x64'),'ToId','read',_0x3678('0x48')],'order':qs['sort']('-createdAt'),'limit':0x1,'offset':0x0,'raw':!![]})[_0x3678('0x2a')](wrapUser(_0x6471ed[_0x38d305])));}return BPromise[_0x3678('0x65')](_0x477273);}return[];})['then'](function(_0x59b124){return{'rows':_0x59b124,'count':_0x59b124[_0x3678('0x38')]};})['then'](respondWithResult(_0x2d571a,null))[_0x3678('0x45')](handleError(_0x2d571a,null));};