f4decbd1faa44632c7da63c99f1725c3a9856aab
[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 _0x63fe=['rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','fields','attributes','length','nolimit','order','sort','pick','filter','where','map','VIRTUAL','options','includeAll','findAll','rows','show','params','include','merge','find','catch','create','body','destroy','describe','messages','lastMessageAt','createdAt','lastMessage','YYYY-MM-DD\x20HH:mm:ss','getUsers','User','agent','admin','user','fullname','role','userpic','internal','online','lastLoginAt','allowmessenger','showWebBar','VoiceQueue','VoiceQueues','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','UserProfileSection','Agents','userProfileId','isEmpty','resourceId','push','FromId','read','all','eml-format','rimraf','zip-dir','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','lodash','squel','jsforce','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','localhost','./chatInternalMessage.socket','sendStatus','status','offset','undefined','limit','count','Content-Range','json','apply','reject','then','end','error','name','send','ChatInternalMessage'];(function(_0x417d56,_0x17ee07){var _0x4c80ed=function(_0x41d6ca){while(--_0x41d6ca){_0x417d56['push'](_0x417d56['shift']());}};_0x4c80ed(++_0x17ee07);}(_0x63fe,0xb0));var _0xe63f=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x63fe[_0x3dd15e];return _0x231fd0;};'use strict';var emlformat=require(_0xe63f('0x0'));var rimraf=require(_0xe63f('0x1'));var zipdir=require(_0xe63f('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0xe63f('0x3'));var moment=require(_0xe63f('0x4'));var BPromise=require(_0xe63f('0x5'));var Mustache=require(_0xe63f('0x6'));var util=require(_0xe63f('0x7'));var path=require(_0xe63f('0x8'));var sox=require(_0xe63f('0x9'));var csv=require(_0xe63f('0xa'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xe63f('0xb'));var squel=require(_0xe63f('0xc'));var crypto=require('crypto');var jsforce=require(_0xe63f('0xd'));var deskjs=require(_0xe63f('0xe'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0xe63f('0xf'));var Redis=require(_0xe63f('0x10'));var authService=require(_0xe63f('0x11'));var qs=require(_0xe63f('0x12'));var as=require(_0xe63f('0x13'));var hardwareService=require(_0xe63f('0x14'));var logger=require(_0xe63f('0x15'))(_0xe63f('0x16'));var utils=require('../../config/utils');var config=require(_0xe63f('0x17'));var licenseUtil=require(_0xe63f('0x18'));var db=require(_0xe63f('0x19'))['db'];config[_0xe63f('0x1a')]=_[_0xe63f('0x1b')](config[_0xe63f('0x1a')],{'host':_0xe63f('0x1c'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0xe63f('0x1a')]));require(_0xe63f('0x1d'))['register'](socket);function respondWithStatusCode(_0x40cdf3,_0x5a4866){_0x5a4866=_0x5a4866||0xcc;return function(_0x142665){if(_0x142665){return _0x40cdf3[_0xe63f('0x1e')](_0x5a4866);}return _0x40cdf3[_0xe63f('0x1f')](_0x5a4866)['end']();};}function respondWithResult(_0x3d61bc,_0x4b12ad){_0x4b12ad=_0x4b12ad||0xc8;return function(_0x54da9c){if(_0x54da9c){return _0x3d61bc[_0xe63f('0x1f')](_0x4b12ad)['json'](_0x54da9c);}};}function respondWithFilteredResult(_0x173d8e,_0x438c7a){return function(_0xab30b8){if(_0xab30b8){var _0x115c30=typeof _0x438c7a[_0xe63f('0x20')]===_0xe63f('0x21')&&typeof _0x438c7a[_0xe63f('0x22')]===_0xe63f('0x21');var _0x35d69b=_0xab30b8[_0xe63f('0x23')];var _0xe9845=_0x115c30?0x0:_0x438c7a['offset'];var _0x43f3c2=_0x115c30?_0xab30b8[_0xe63f('0x23')]:_0x438c7a['offset']+_0x438c7a[_0xe63f('0x22')];var _0x33dc22;if(_0x43f3c2>=_0x35d69b){_0x43f3c2=_0x35d69b;_0x33dc22=0xc8;}else{_0x33dc22=0xce;}_0x173d8e[_0xe63f('0x1f')](_0x33dc22);return _0x173d8e['set'](_0xe63f('0x24'),_0xe9845+'-'+_0x43f3c2+'/'+_0x35d69b)[_0xe63f('0x25')](_0xab30b8);}return null;};}function patchUpdates(_0x4cf052){return function(_0x237aa6){try{jsonpatch[_0xe63f('0x26')](_0x237aa6,_0x4cf052,!![]);}catch(_0x36bfbc){return BPromise[_0xe63f('0x27')](_0x36bfbc);}return _0x237aa6['save']();};}function saveUpdates(_0x51f9ce,_0x14dbab){return function(_0x46db9d){if(_0x46db9d){return _0x46db9d['update'](_0x51f9ce)[_0xe63f('0x28')](function(_0xb86028){return _0xb86028;});}return null;};}function removeEntity(_0xe9ef2c,_0x240810){return function(_0x390ad2){if(_0x390ad2){return _0x390ad2['destroy']()['then'](function(){_0xe9ef2c[_0xe63f('0x1f')](0xcc)[_0xe63f('0x29')]();});}};}function handleEntityNotFound(_0xad8a4e,_0xf9fdcc){return function(_0xf75d29){if(!_0xf75d29){_0xad8a4e[_0xe63f('0x1e')](0x194);}return _0xf75d29;};}function handleError(_0x3bfb80,_0x586cfe){_0x586cfe=_0x586cfe||0x1f4;return function(_0x30754f){logger[_0xe63f('0x2a')](_0x30754f['stack']);if(_0x30754f[_0xe63f('0x2b')]){delete _0x30754f[_0xe63f('0x2b')];}_0x3bfb80[_0xe63f('0x1f')](_0x586cfe)[_0xe63f('0x2c')](_0x30754f);};}exports['index']=function(_0x215f47,_0x375fa3){var _0x23a091={},_0xdb1bd3={},_0xb789b2={'count':0x0,'rows':[]};var _0x50991b=_['map'](db[_0xe63f('0x2d')][_0xe63f('0x2e')],function(_0x596d0b){return{'name':_0x596d0b[_0xe63f('0x2f')],'type':_0x596d0b[_0xe63f('0x30')][_0xe63f('0x31')]};});_0xdb1bd3[_0xe63f('0x32')]=_['map'](_0x50991b,_0xe63f('0x2b'));_0xdb1bd3[_0xe63f('0x33')]=_[_0xe63f('0x34')](_0x215f47[_0xe63f('0x33')]);_0xdb1bd3[_0xe63f('0x35')]=_[_0xe63f('0x36')](_0xdb1bd3['model'],_0xdb1bd3['query']);_0x23a091['attributes']=_[_0xe63f('0x36')](_0xdb1bd3['model'],qs[_0xe63f('0x37')](_0x215f47[_0xe63f('0x33')][_0xe63f('0x37')]));_0x23a091[_0xe63f('0x38')]=_0x23a091[_0xe63f('0x38')][_0xe63f('0x39')]?_0x23a091[_0xe63f('0x38')]:_0xdb1bd3['model'];if(!_0x215f47[_0xe63f('0x33')]['hasOwnProperty'](_0xe63f('0x3a'))){_0x23a091[_0xe63f('0x22')]=qs[_0xe63f('0x22')](_0x215f47[_0xe63f('0x33')]['limit']);_0x23a091[_0xe63f('0x20')]=qs['offset'](_0x215f47[_0xe63f('0x33')][_0xe63f('0x20')]);}_0x23a091[_0xe63f('0x3b')]=qs[_0xe63f('0x3c')](_0x215f47[_0xe63f('0x33')][_0xe63f('0x3c')]);_0x23a091['where']=qs['filters'](_[_0xe63f('0x3d')](_0x215f47[_0xe63f('0x33')],_0xdb1bd3[_0xe63f('0x35')]),_0x50991b);if(_0x215f47[_0xe63f('0x33')][_0xe63f('0x3e')]){_0x23a091['where']=_['merge'](_0x23a091[_0xe63f('0x3f')],{'$or':_[_0xe63f('0x40')](_0x50991b,function(_0x1be6cb){if(_0x1be6cb[_0xe63f('0x30')]!==_0xe63f('0x41')){var _0x2d7629={};_0x2d7629[_0x1be6cb[_0xe63f('0x2b')]]={'$like':'%'+_0x215f47[_0xe63f('0x33')][_0xe63f('0x3e')]+'%'};return _0x2d7629;}})});}_0x23a091=_['merge']({},_0x23a091,_0x215f47[_0xe63f('0x42')]);var _0x186750={'where':_0x23a091[_0xe63f('0x3f')]};return db['ChatInternalMessage']['count'](_0x186750)[_0xe63f('0x28')](function(_0x185593){_0xb789b2[_0xe63f('0x23')]=_0x185593;if(_0x215f47[_0xe63f('0x33')][_0xe63f('0x43')]){_0x23a091['include']=[{'all':!![]}];}return db[_0xe63f('0x2d')][_0xe63f('0x44')](_0x23a091);})[_0xe63f('0x28')](function(_0xb93899){_0xb789b2[_0xe63f('0x45')]=_0xb93899;return _0xb789b2;})[_0xe63f('0x28')](respondWithFilteredResult(_0x375fa3,_0x23a091))['catch'](handleError(_0x375fa3,null));};exports[_0xe63f('0x46')]=function(_0x2577fc,_0x582a1b){var _0x3e12aa={'raw':!![],'where':{'id':_0x2577fc[_0xe63f('0x47')]['id']}},_0x2ab59a={};_0x2ab59a[_0xe63f('0x32')]=_[_0xe63f('0x34')](db[_0xe63f('0x2d')][_0xe63f('0x2e')]);_0x2ab59a['query']=_[_0xe63f('0x34')](_0x2577fc[_0xe63f('0x33')]);_0x2ab59a[_0xe63f('0x35')]=_[_0xe63f('0x36')](_0x2ab59a['model'],_0x2ab59a[_0xe63f('0x33')]);_0x3e12aa['attributes']=_[_0xe63f('0x36')](_0x2ab59a[_0xe63f('0x32')],qs[_0xe63f('0x37')](_0x2577fc['query']['fields']));_0x3e12aa[_0xe63f('0x38')]=_0x3e12aa[_0xe63f('0x38')][_0xe63f('0x39')]?_0x3e12aa[_0xe63f('0x38')]:_0x2ab59a[_0xe63f('0x32')];if(_0x2577fc[_0xe63f('0x33')][_0xe63f('0x43')]){_0x3e12aa[_0xe63f('0x48')]=[{'all':!![]}];}_0x3e12aa=_[_0xe63f('0x49')]({},_0x3e12aa,_0x2577fc[_0xe63f('0x42')]);return db[_0xe63f('0x2d')][_0xe63f('0x4a')](_0x3e12aa)[_0xe63f('0x28')](handleEntityNotFound(_0x582a1b,null))[_0xe63f('0x28')](respondWithResult(_0x582a1b,null))[_0xe63f('0x4b')](handleError(_0x582a1b,null));};exports['create']=function(_0x217682,_0x9c50fa){return db[_0xe63f('0x2d')][_0xe63f('0x4c')](_0x217682[_0xe63f('0x4d')],{})[_0xe63f('0x28')](respondWithResult(_0x9c50fa,0xc9))[_0xe63f('0x4b')](handleError(_0x9c50fa,null));};exports['update']=function(_0x33d589,_0xda737c){if(_0x33d589[_0xe63f('0x4d')]['id']){delete _0x33d589[_0xe63f('0x4d')]['id'];}return db[_0xe63f('0x2d')][_0xe63f('0x4a')]({'where':{'id':_0x33d589['params']['id']}})['then'](handleEntityNotFound(_0xda737c,null))[_0xe63f('0x28')](saveUpdates(_0x33d589[_0xe63f('0x4d')],null))['then'](respondWithResult(_0xda737c,null))[_0xe63f('0x4b')](handleError(_0xda737c,null));};exports[_0xe63f('0x4e')]=function(_0x4b96fb,_0x174afe){return db['ChatInternalMessage'][_0xe63f('0x4a')]({'where':{'id':_0x4b96fb['params']['id']}})[_0xe63f('0x28')](handleEntityNotFound(_0x174afe,null))[_0xe63f('0x28')](removeEntity(_0x174afe,null))[_0xe63f('0x4b')](handleError(_0x174afe,null));};exports['describe']=function(_0x5bc8a3,_0x584313){return db['ChatInternalMessage'][_0xe63f('0x4f')]()[_0xe63f('0x28')](respondWithResult(_0x584313,null))[_0xe63f('0x4b')](handleError(_0x584313,null));};function wrapUser(_0x59406c){return function(_0x2aa5bd){var _0x44641a=_0x59406c['get']({'plain':!![]});_0x44641a[_0xe63f('0x50')]=[];if(_0x2aa5bd){_0x44641a[_0xe63f('0x51')]=_0x2aa5bd[_0xe63f('0x52')];_0x44641a[_0xe63f('0x53')]=_0x2aa5bd;}else{_0x44641a[_0xe63f('0x51')]=moment(0x0)['format'](_0xe63f('0x54'));_0x44641a[_0xe63f('0x53')]={};}return _0x44641a;};}exports[_0xe63f('0x55')]=function(_0x4d1c99,_0x261348,_0x59026f){var _0x15f6d5=[];return db[_0xe63f('0x56')][_0xe63f('0x44')]({'where':{'role':[_0xe63f('0x57'),_0xe63f('0x58'),_0xe63f('0x59')]},'attributes':['id',_0xe63f('0x5a'),_0xe63f('0x2b'),_0xe63f('0x5b'),_0xe63f('0x5c'),_0xe63f('0x5d'),_0xe63f('0x5e'),_0xe63f('0x5f'),_0xe63f('0x60'),_0xe63f('0x61')],'order':qs[_0xe63f('0x3c')]('-online'),'include':[{'model':db[_0xe63f('0x62')],'as':_0xe63f('0x63'),'attributes':['id',_0xe63f('0x2b'),_0xe63f('0x30')],'through':{'attributes':[]}}]})['then'](function(_0x176621){if(_0x176621){var _0xcf9655=_0x4d1c99[_0xe63f('0x59')][_0xe63f('0x64')]({'plain':!![]});if(!_0xcf9655)throw new Error(_0xe63f('0x65'));if(_0xcf9655[_0xe63f('0x5b')]==='user'){return db[_0xe63f('0x66')][_0xe63f('0x4a')]({'where':{'name':_0xe63f('0x67'),'userProfileId':_0xcf9655[_0xe63f('0x68')]},'raw':!![]})[_0xe63f('0x28')](function(_0xd2b5c){if(_0xd2b5c){if(_0xd2b5c['autoAssociation']===0x0){return db['UserProfileResource'][_0xe63f('0x44')]({'where':{'sectionId':_0xd2b5c['id']},'raw':!![]})['then'](function(_0x34be80){var _0x393a05=[];if(_[_0xe63f('0x69')](_0x34be80)){_0x393a05=_[_0xe63f('0x3e')](_0x176621,function(_0x2346ea){if(_0x2346ea[_0xe63f('0x5b')]!==_0xe63f('0x57')){return _0x2346ea;}});return _0x393a05;}else{for(var _0x5e7403=0x0;_0x5e7403<_0x176621[_0xe63f('0x39')];_0x5e7403++){var _0x5bee79=_0x176621[_0x5e7403];if(_0x5bee79[_0xe63f('0x5b')]===_0xe63f('0x57')){var _0x23dae0=_[_0xe63f('0x4a')](_0x34be80,function(_0x40df26){return _0x40df26[_0xe63f('0x6a')]===_0x5bee79['id'];});if(_0x23dae0)_0x393a05[_0xe63f('0x6b')](_0x5bee79);}else{_0x393a05[_0xe63f('0x6b')](_0x5bee79);}}return _0x393a05;}});}else{return _0x176621;}}else{var _0x382ff0=_['filter'](_0x176621,function(_0x12dae6){if(_0x12dae6[_0xe63f('0x5b')]!==_0xe63f('0x57')){return _0x12dae6;}});return _0x382ff0;}});}else{return _0x176621;}}})[_0xe63f('0x28')](function(_0xbe9c8f){var _0xc88eeb=[];if(_0xbe9c8f){_0x15f6d5=_0xbe9c8f;for(var _0x3aa50a=0x0;_0x3aa50a<_0xbe9c8f[_0xe63f('0x39')];_0x3aa50a+=0x1){_0x15f6d5[_0x3aa50a][_0xe63f('0x50')]=[];_0xc88eeb[_0xe63f('0x6b')](db[_0xe63f('0x2d')][_0xe63f('0x4a')]({'where':{'FromId':[_0x4d1c99[_0xe63f('0x59')]['id'],_0xbe9c8f[_0x3aa50a]['id']],'ToId':[_0x4d1c99['user']['id'],_0xbe9c8f[_0x3aa50a]['id']],'ChatGroupId':null},'attributes':['id',_0xe63f('0x52'),_0xe63f('0x6c'),'ToId',_0xe63f('0x6d'),'body'],'order':qs[_0xe63f('0x3c')]('-createdAt'),'limit':0x1,'offset':0x0,'raw':!![]})[_0xe63f('0x28')](wrapUser(_0xbe9c8f[_0x3aa50a])));}return BPromise[_0xe63f('0x6e')](_0xc88eeb);}return[];})[_0xe63f('0x28')](function(_0x411538){return{'rows':_0x411538,'count':_0x411538['length']};})[_0xe63f('0x28')](respondWithResult(_0x261348,null))[_0xe63f('0x4b')](handleError(_0x261348,null));};