bfeb253f97037e53e04d27c0e08dca06a7d932a6
[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 _0x7ad7=['createdAt','lastMessage','format','YYYY-MM-DD\x20HH:mm:ss','getUsers','User','agent','admin','user','role','userpic','internal','online','lastLoginAt','allowmessenger','showWebBar','-online','VoiceQueues','Unable\x20to\x20retrieve\x20the\x20current\x20user','UserProfileSection','Agents','userProfileId','autoAssociation','isEmpty','push','FromId','ToId','read','-createdAt','all','html-pdf','rimraf','fast-json-patch','request-promise','moment','bluebird','mustache','path','ejs','lodash','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../mysqldb','redis','defaults','socket.io-emitter','./chatInternalMessage.socket','register','sendStatus','status','end','json','count','offset','set','Content-Range','apply','reject','save','update','then','destroy','error','stack','name','send','index','map','ChatInternalMessage','rawAttributes','type','key','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','limit','sort','where','filter','merge','VIRTUAL','includeAll','include','findAll','catch','show','options','find','create','body','params','describe','messages','lastMessageAt'];(function(_0x1445c3,_0xe73466){var _0x35d37a=function(_0x4d3776){while(--_0x4d3776){_0x1445c3['push'](_0x1445c3['shift']());}};_0x35d37a(++_0xe73466);}(_0x7ad7,0x8b));var _0x77ad=function(_0x3464ce,_0x4dc32a){_0x3464ce=_0x3464ce-0x0;var _0x1a6cae=_0x7ad7[_0x3464ce];return _0x1a6cae;};'use strict';var pdf=require(_0x77ad('0x0'));var emlformat=require('eml-format');var rimraf=require(_0x77ad('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x77ad('0x2'));var rp=require(_0x77ad('0x3'));var moment=require(_0x77ad('0x4'));var BPromise=require(_0x77ad('0x5'));var Mustache=require(_0x77ad('0x6'));var util=require('util');var path=require(_0x77ad('0x7'));var sox=require('sox');var csv=require('to-csv');var ejs=require(_0x77ad('0x8'));var fs=require('fs');var _=require(_0x77ad('0x9'));var squel=require('squel');var crypto=require(_0x77ad('0xa'));var jsforce=require(_0x77ad('0xb'));var deskjs=require(_0x77ad('0xc'));var toCsv=require('to-csv');var querystring=require(_0x77ad('0xd'));var Papa=require(_0x77ad('0xe'));var Redis=require(_0x77ad('0xf'));var authService=require(_0x77ad('0x10'));var qs=require(_0x77ad('0x11'));var as=require(_0x77ad('0x12'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x77ad('0x13'))(_0x77ad('0x14'));var utils=require('../../config/utils');var config=require('../../config/environment');var db=require(_0x77ad('0x15'))['db'];config[_0x77ad('0x16')]=_[_0x77ad('0x17')](config[_0x77ad('0x16')],{'host':'localhost','port':0x18eb});var socket=require(_0x77ad('0x18'))(new Redis(config[_0x77ad('0x16')]));require(_0x77ad('0x19'))[_0x77ad('0x1a')](socket);function respondWithStatusCode(_0x326e0f,_0x26af48){_0x26af48=_0x26af48||0xcc;return function(_0xf3e6cb){if(_0xf3e6cb){return _0x326e0f[_0x77ad('0x1b')](_0x26af48);}return _0x326e0f[_0x77ad('0x1c')](_0x26af48)[_0x77ad('0x1d')]();};}function respondWithResult(_0x549003,_0x456868){_0x456868=_0x456868||0xc8;return function(_0x4e79c1){if(_0x4e79c1){return _0x549003[_0x77ad('0x1c')](_0x456868)[_0x77ad('0x1e')](_0x4e79c1);}};}function respondWithFilteredResult(_0x40461e,_0x11d19e){return function(_0x4f4c04){if(_0x4f4c04){var _0x3d0bca=_0x4f4c04[_0x77ad('0x1f')],_0x4f6b32=_0x11d19e['offset'],_0x5c591f=_0x11d19e[_0x77ad('0x20')]+_0x11d19e['limit'],_0x5c9653;if(_0x5c591f>=_0x3d0bca){_0x5c591f=_0x3d0bca;_0x5c9653=0xc8;}else{_0x5c9653=0xce;}_0x40461e[_0x77ad('0x1c')](_0x5c9653);return _0x40461e[_0x77ad('0x21')](_0x77ad('0x22'),_0x4f6b32+'-'+_0x5c591f+'/'+_0x3d0bca)[_0x77ad('0x1e')](_0x4f4c04);}return null;};}function patchUpdates(_0x40c4e6){return function(_0xe31987){try{jsonpatch[_0x77ad('0x23')](_0xe31987,_0x40c4e6,!![]);}catch(_0x3681e7){return BPromise[_0x77ad('0x24')](_0x3681e7);}return _0xe31987[_0x77ad('0x25')]();};}function saveUpdates(_0x356999,_0xfbbee4){return function(_0x510556){if(_0x510556){return _0x510556[_0x77ad('0x26')](_0x356999)[_0x77ad('0x27')](function(_0x253c39){return _0x253c39;});}return null;};}function removeEntity(_0x2a329f,_0x814f13){return function(_0x7cec58){if(_0x7cec58){return _0x7cec58[_0x77ad('0x28')]()['then'](function(){_0x2a329f[_0x77ad('0x1c')](0xcc)[_0x77ad('0x1d')]();});}};}function handleEntityNotFound(_0x2d432b,_0x4aed1f){return function(_0x3b2ac6){if(!_0x3b2ac6){_0x2d432b[_0x77ad('0x1b')](0x194);}return _0x3b2ac6;};}function handleError(_0x4fa598,_0x29c069){_0x29c069=_0x29c069||0x1f4;return function(_0xe21b66){logger[_0x77ad('0x29')](_0xe21b66[_0x77ad('0x2a')]);if(_0xe21b66[_0x77ad('0x2b')]){delete _0xe21b66[_0x77ad('0x2b')];}_0x4fa598[_0x77ad('0x1c')](_0x29c069)[_0x77ad('0x2c')](_0xe21b66);};}exports[_0x77ad('0x2d')]=function(_0x3c4dac,_0x318532){var _0x509116={},_0x594ca={},_0x291c75={'count':0x0,'rows':[]};var _0x57f9a8=_[_0x77ad('0x2e')](db[_0x77ad('0x2f')][_0x77ad('0x30')],function(_0x22ad80){return{'name':_0x22ad80['fieldName'],'type':_0x22ad80[_0x77ad('0x31')][_0x77ad('0x32')]};});_0x594ca[_0x77ad('0x33')]=_[_0x77ad('0x2e')](_0x57f9a8,_0x77ad('0x2b'));_0x594ca[_0x77ad('0x34')]=_[_0x77ad('0x35')](_0x3c4dac[_0x77ad('0x34')]);_0x594ca[_0x77ad('0x36')]=_[_0x77ad('0x37')](_0x594ca['model'],_0x594ca['query']);_0x509116[_0x77ad('0x38')]=_[_0x77ad('0x37')](_0x594ca[_0x77ad('0x33')],qs[_0x77ad('0x39')](_0x3c4dac[_0x77ad('0x34')][_0x77ad('0x39')]));_0x509116[_0x77ad('0x38')]=_0x509116[_0x77ad('0x38')][_0x77ad('0x3a')]?_0x509116['attributes']:_0x594ca[_0x77ad('0x33')];if(!_0x3c4dac[_0x77ad('0x34')][_0x77ad('0x3b')]('nolimit')){_0x509116[_0x77ad('0x3c')]=qs[_0x77ad('0x3c')](_0x3c4dac[_0x77ad('0x34')][_0x77ad('0x3c')]);_0x509116['offset']=qs[_0x77ad('0x20')](_0x3c4dac['query'][_0x77ad('0x20')]);}_0x509116['order']=qs[_0x77ad('0x3d')](_0x3c4dac[_0x77ad('0x34')]['sort']);_0x509116[_0x77ad('0x3e')]=qs['filters'](_['pick'](_0x3c4dac['query'],_0x594ca['filters']),_0x57f9a8);if(_0x3c4dac['query'][_0x77ad('0x3f')]){_0x509116[_0x77ad('0x3e')]=_[_0x77ad('0x40')](_0x509116['where'],{'$or':_[_0x77ad('0x2e')](_0x57f9a8,function(_0x3ebf0b){if(_0x3ebf0b[_0x77ad('0x31')]!==_0x77ad('0x41')){var _0x1bb1ea={};_0x1bb1ea[_0x3ebf0b['name']]={'$like':'%'+_0x3c4dac[_0x77ad('0x34')][_0x77ad('0x3f')]+'%'};return _0x1bb1ea;}})});}_0x509116=_[_0x77ad('0x40')]({},_0x509116,_0x3c4dac['options']);var _0x4bbc95={'where':_0x509116[_0x77ad('0x3e')]};return db['ChatInternalMessage'][_0x77ad('0x1f')](_0x4bbc95)[_0x77ad('0x27')](function(_0x124c88){_0x291c75[_0x77ad('0x1f')]=_0x124c88;if(_0x3c4dac[_0x77ad('0x34')][_0x77ad('0x42')]){_0x509116[_0x77ad('0x43')]=[{'all':!![]}];}return db['ChatInternalMessage'][_0x77ad('0x44')](_0x509116);})[_0x77ad('0x27')](function(_0x47ee7f){_0x291c75['rows']=_0x47ee7f;return _0x291c75;})['then'](respondWithFilteredResult(_0x318532,_0x509116))[_0x77ad('0x45')](handleError(_0x318532,null));};exports[_0x77ad('0x46')]=function(_0x2ca8bd,_0x58f0cc){var _0xc1e34={'raw':!![],'where':{'id':_0x2ca8bd['params']['id']}},_0x17660f={};_0x17660f['model']=_[_0x77ad('0x35')](db['ChatInternalMessage'][_0x77ad('0x30')]);_0x17660f[_0x77ad('0x34')]=_[_0x77ad('0x35')](_0x2ca8bd[_0x77ad('0x34')]);_0x17660f[_0x77ad('0x36')]=_[_0x77ad('0x37')](_0x17660f[_0x77ad('0x33')],_0x17660f[_0x77ad('0x34')]);_0xc1e34['attributes']=_[_0x77ad('0x37')](_0x17660f[_0x77ad('0x33')],qs[_0x77ad('0x39')](_0x2ca8bd[_0x77ad('0x34')][_0x77ad('0x39')]));_0xc1e34['attributes']=_0xc1e34[_0x77ad('0x38')][_0x77ad('0x3a')]?_0xc1e34[_0x77ad('0x38')]:_0x17660f[_0x77ad('0x33')];if(_0x2ca8bd['query'][_0x77ad('0x42')]){_0xc1e34['include']=[{'all':!![]}];}_0xc1e34=_['merge']({},_0xc1e34,_0x2ca8bd[_0x77ad('0x47')]);return db[_0x77ad('0x2f')][_0x77ad('0x48')](_0xc1e34)['then'](handleEntityNotFound(_0x58f0cc,null))[_0x77ad('0x27')](respondWithResult(_0x58f0cc,null))[_0x77ad('0x45')](handleError(_0x58f0cc,null));};exports[_0x77ad('0x49')]=function(_0x33eddf,_0x2eb5f1){return db[_0x77ad('0x2f')][_0x77ad('0x49')](_0x33eddf[_0x77ad('0x4a')],{})['then'](respondWithResult(_0x2eb5f1,0xc9))[_0x77ad('0x45')](handleError(_0x2eb5f1,null));};exports[_0x77ad('0x26')]=function(_0x1474a9,_0x1ae57f){if(_0x1474a9['body']['id']){delete _0x1474a9[_0x77ad('0x4a')]['id'];}return db[_0x77ad('0x2f')][_0x77ad('0x48')]({'where':{'id':_0x1474a9[_0x77ad('0x4b')]['id']}})[_0x77ad('0x27')](handleEntityNotFound(_0x1ae57f,null))['then'](saveUpdates(_0x1474a9[_0x77ad('0x4a')],null))['then'](respondWithResult(_0x1ae57f,null))[_0x77ad('0x45')](handleError(_0x1ae57f,null));};exports[_0x77ad('0x28')]=function(_0xa4d8a0,_0x47c9e0){return db[_0x77ad('0x2f')]['find']({'where':{'id':_0xa4d8a0[_0x77ad('0x4b')]['id']}})[_0x77ad('0x27')](handleEntityNotFound(_0x47c9e0,null))[_0x77ad('0x27')](removeEntity(_0x47c9e0,null))['catch'](handleError(_0x47c9e0,null));};exports[_0x77ad('0x4c')]=function(_0x191ada,_0x5b6626){return db['ChatInternalMessage'][_0x77ad('0x4c')]()[_0x77ad('0x27')](respondWithResult(_0x5b6626,null))[_0x77ad('0x45')](handleError(_0x5b6626,null));};function wrapUser(_0x445240){return function(_0x4c7bcb){var _0xdd005b=_0x445240['get']({'plain':!![]});_0xdd005b[_0x77ad('0x4d')]=[];if(_0x4c7bcb){_0xdd005b[_0x77ad('0x4e')]=_0x4c7bcb[_0x77ad('0x4f')];_0xdd005b[_0x77ad('0x50')]=_0x4c7bcb;}else{_0xdd005b[_0x77ad('0x4e')]=moment(0x0)[_0x77ad('0x51')](_0x77ad('0x52'));_0xdd005b[_0x77ad('0x50')]={};}return _0xdd005b;};}exports[_0x77ad('0x53')]=function(_0x1270f0,_0x1415cb,_0x1118f8){var _0x3ece47=[];return db[_0x77ad('0x54')][_0x77ad('0x44')]({'where':{'role':[_0x77ad('0x55'),_0x77ad('0x56'),_0x77ad('0x57')]},'attributes':['id','fullname',_0x77ad('0x2b'),_0x77ad('0x58'),_0x77ad('0x59'),_0x77ad('0x5a'),_0x77ad('0x5b'),_0x77ad('0x5c'),_0x77ad('0x5d'),_0x77ad('0x5e')],'order':qs[_0x77ad('0x3d')](_0x77ad('0x5f')),'include':[{'model':db['VoiceQueue'],'as':_0x77ad('0x60'),'attributes':['id',_0x77ad('0x2b'),_0x77ad('0x31')],'through':{'attributes':[]}}]})[_0x77ad('0x27')](function(_0x53dad0){if(_0x53dad0){var _0xd9c987=_0x1270f0[_0x77ad('0x57')]['get']({'plain':!![]});if(!_0xd9c987)throw new Error(_0x77ad('0x61'));if(_0xd9c987[_0x77ad('0x58')]===_0x77ad('0x57')){return db[_0x77ad('0x62')]['find']({'where':{'name':_0x77ad('0x63'),'userProfileId':_0xd9c987[_0x77ad('0x64')]},'raw':!![]})[_0x77ad('0x27')](function(_0x385b87){if(_0x385b87){if(_0x385b87[_0x77ad('0x65')]===0x0){return db['UserProfileResource'][_0x77ad('0x44')]({'where':{'sectionId':_0x385b87['id']},'raw':!![]})[_0x77ad('0x27')](function(_0x5831fa){var _0x5a71b9=[];if(_[_0x77ad('0x66')](_0x5831fa)){_0x5a71b9=_['filter'](_0x53dad0,function(_0x37d0af){if(_0x37d0af[_0x77ad('0x58')]!=='agent'){return _0x37d0af;}});return _0x5a71b9;}else{for(var _0x20579a=0x0;_0x20579a<_0x53dad0['length'];_0x20579a++){var _0x56f92f=_0x53dad0[_0x20579a];if(_0x56f92f[_0x77ad('0x58')]===_0x77ad('0x55')){var _0xa20c11=_[_0x77ad('0x48')](_0x5831fa,function(_0x3dfb9f){return _0x3dfb9f['resourceId']===_0x56f92f['id'];});if(_0xa20c11)_0x5a71b9['push'](_0x56f92f);}else{_0x5a71b9[_0x77ad('0x67')](_0x56f92f);}}return _0x5a71b9;}});}else{return _0x53dad0;}}else{var _0x4cfa61=_['filter'](_0x53dad0,function(_0x3fbd8a){if(_0x3fbd8a[_0x77ad('0x58')]!=='agent'){return _0x3fbd8a;}});return _0x4cfa61;}});}else{return _0x53dad0;}}})[_0x77ad('0x27')](function(_0x1af065){var _0x43a1e7=[];if(_0x1af065){_0x3ece47=_0x1af065;for(var _0x30991b=0x0;_0x30991b<_0x1af065[_0x77ad('0x3a')];_0x30991b+=0x1){_0x3ece47[_0x30991b][_0x77ad('0x4d')]=[];_0x43a1e7[_0x77ad('0x67')](db[_0x77ad('0x2f')][_0x77ad('0x48')]({'where':{'FromId':[_0x1270f0[_0x77ad('0x57')]['id'],_0x1af065[_0x30991b]['id']],'ToId':[_0x1270f0[_0x77ad('0x57')]['id'],_0x1af065[_0x30991b]['id']],'ChatGroupId':null},'attributes':['id',_0x77ad('0x4f'),_0x77ad('0x68'),_0x77ad('0x69'),_0x77ad('0x6a'),_0x77ad('0x4a')],'order':qs[_0x77ad('0x3d')](_0x77ad('0x6b')),'limit':0x1,'offset':0x0,'raw':!![]})['then'](wrapUser(_0x1af065[_0x30991b])));}return BPromise[_0x77ad('0x6c')](_0x43a1e7);}return[];})[_0x77ad('0x27')](function(_0x23154e){return{'rows':_0x23154e,'count':_0x23154e[_0x77ad('0x3a')]};})[_0x77ad('0x27')](respondWithResult(_0x1415cb,null))['catch'](handleError(_0x1415cb,null));};