d79407e7632c9a77bb1c18fa5255249ad5454c64
[motion2.git] / server / api / schedule / schedule.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 _0xad31=['filters','pick','filter','merge','VIRTUAL','includeAll','include','findAll','rows','catch','show','params','length','options','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','../../config/schedule','run','html-pdf','rimraf','zip-dir','fast-json-patch','moment','mustache','util','sox','to-csv','ejs','lodash','squel','crypto','jsforce','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/license/util','../../mysqldb','sendStatus','status','end','json','count','offset','limit','set','Content-Range','apply','reject','then','destroy','get','Scheduler','UserProfileResource','error','name','send','index','Schedule','rawAttributes','fieldName','type','key','model','map','keys','query','intersection','fields','attributes','hasOwnProperty','nolimit','order','sort','where'];(function(_0x1562a2,_0x2e4655){var _0x39a636=function(_0x25483a){while(--_0x25483a){_0x1562a2['push'](_0x1562a2['shift']());}};_0x39a636(++_0x2e4655);}(_0xad31,0x16c));var _0x1ad3=function(_0x544e09,_0x28d01a){_0x544e09=_0x544e09-0x0;var _0x1bc8a7=_0xad31[_0x544e09];return _0x1bc8a7;};'use strict';var pdf=require(_0x1ad3('0x0'));var emlformat=require('eml-format');var rimraf=require(_0x1ad3('0x1'));var zipdir=require(_0x1ad3('0x2'));var jsonpatch=require(_0x1ad3('0x3'));var rp=require('request-promise');var moment=require(_0x1ad3('0x4'));var BPromise=require('bluebird');var Mustache=require(_0x1ad3('0x5'));var util=require(_0x1ad3('0x6'));var path=require('path');var sox=require(_0x1ad3('0x7'));var csv=require(_0x1ad3('0x8'));var ejs=require(_0x1ad3('0x9'));var fs=require('fs');var _=require(_0x1ad3('0xa'));var squel=require(_0x1ad3('0xb'));var crypto=require(_0x1ad3('0xc'));var jsforce=require(_0x1ad3('0xd'));var deskjs=require('desk.js');var toCsv=require(_0x1ad3('0x8'));var querystring=require(_0x1ad3('0xe'));var Papa=require(_0x1ad3('0xf'));var Redis=require(_0x1ad3('0x10'));var authService=require(_0x1ad3('0x11'));var qs=require('../../components/parsers/qs');var as=require(_0x1ad3('0x12'));var hardwareService=require(_0x1ad3('0x13'));var logger=require(_0x1ad3('0x14'))('api');var utils=require(_0x1ad3('0x15'));var config=require('../../config/environment');var licenseUtil=require(_0x1ad3('0x16'));var db=require(_0x1ad3('0x17'))['db'];function respondWithStatusCode(_0x246a84,_0x511db0){_0x511db0=_0x511db0||0xcc;return function(_0x2a66cf){if(_0x2a66cf){return _0x246a84[_0x1ad3('0x18')](_0x511db0);}return _0x246a84[_0x1ad3('0x19')](_0x511db0)[_0x1ad3('0x1a')]();};}function respondWithResult(_0x30c382,_0x53b64f){_0x53b64f=_0x53b64f||0xc8;return function(_0x62420f){if(_0x62420f){return _0x30c382[_0x1ad3('0x19')](_0x53b64f)[_0x1ad3('0x1b')](_0x62420f);}};}function respondWithFilteredResult(_0x206f4b,_0x536ffb){return function(_0x558eef){if(_0x558eef){var _0x56d94c=_0x558eef[_0x1ad3('0x1c')],_0x11229a=_0x536ffb[_0x1ad3('0x1d')],_0xc02a25=_0x536ffb[_0x1ad3('0x1d')]+_0x536ffb[_0x1ad3('0x1e')],_0x442f4f;if(_0xc02a25>=_0x56d94c){_0xc02a25=_0x56d94c;_0x442f4f=0xc8;}else{_0x442f4f=0xce;}_0x206f4b[_0x1ad3('0x19')](_0x442f4f);return _0x206f4b[_0x1ad3('0x1f')](_0x1ad3('0x20'),_0x11229a+'-'+_0xc02a25+'/'+_0x56d94c)[_0x1ad3('0x1b')](_0x558eef);}return null;};}function patchUpdates(_0x435ceb){return function(_0x4c72a4){try{jsonpatch[_0x1ad3('0x21')](_0x4c72a4,_0x435ceb,!![]);}catch(_0x2f10bd){return BPromise[_0x1ad3('0x22')](_0x2f10bd);}return _0x4c72a4['save']();};}function saveUpdates(_0x549afe,_0x2f1143){return function(_0x4c6623){if(_0x4c6623){return _0x4c6623['update'](_0x549afe)[_0x1ad3('0x23')](function(_0x49708e){return _0x49708e;});}return null;};}function removeEntity(_0x920580,_0x4e5582){return function(_0x2407d3){if(_0x2407d3){return _0x2407d3[_0x1ad3('0x24')]()[_0x1ad3('0x23')](function(){var _0x561e7f=_0x2407d3[_0x1ad3('0x25')]({'plain':!![]});var _0x3fcb52=_0x1ad3('0x26');return db[_0x1ad3('0x27')][_0x1ad3('0x24')]({'where':{'type':_0x3fcb52,'resourceId':_0x561e7f['id']}})[_0x1ad3('0x23')](function(){return _0x2407d3;});})[_0x1ad3('0x23')](function(){_0x920580['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0xbaa095,_0x51f761){return function(_0x94ce2e){if(!_0x94ce2e){_0xbaa095[_0x1ad3('0x18')](0x194);}return _0x94ce2e;};}function handleError(_0x2ba08b,_0x5d6dec){_0x5d6dec=_0x5d6dec||0x1f4;return function(_0x24bbd9){logger[_0x1ad3('0x28')](_0x24bbd9['stack']);if(_0x24bbd9['name']){delete _0x24bbd9[_0x1ad3('0x29')];}_0x2ba08b['status'](_0x5d6dec)[_0x1ad3('0x2a')](_0x24bbd9);};}exports[_0x1ad3('0x2b')]=function(_0x4eff72,_0x228e67){var _0x31a8c9={},_0x41069f={},_0x422170={'count':0x0,'rows':[]};var _0x16800e=_['map'](db[_0x1ad3('0x2c')][_0x1ad3('0x2d')],function(_0x5e08ce){return{'name':_0x5e08ce[_0x1ad3('0x2e')],'type':_0x5e08ce[_0x1ad3('0x2f')][_0x1ad3('0x30')]};});_0x41069f[_0x1ad3('0x31')]=_[_0x1ad3('0x32')](_0x16800e,_0x1ad3('0x29'));_0x41069f['query']=_[_0x1ad3('0x33')](_0x4eff72[_0x1ad3('0x34')]);_0x41069f['filters']=_[_0x1ad3('0x35')](_0x41069f[_0x1ad3('0x31')],_0x41069f['query']);_0x31a8c9['attributes']=_[_0x1ad3('0x35')](_0x41069f[_0x1ad3('0x31')],qs[_0x1ad3('0x36')](_0x4eff72['query'][_0x1ad3('0x36')]));_0x31a8c9[_0x1ad3('0x37')]=_0x31a8c9[_0x1ad3('0x37')]['length']?_0x31a8c9[_0x1ad3('0x37')]:_0x41069f['model'];if(!_0x4eff72[_0x1ad3('0x34')][_0x1ad3('0x38')](_0x1ad3('0x39'))){_0x31a8c9['limit']=qs[_0x1ad3('0x1e')](_0x4eff72['query'][_0x1ad3('0x1e')]);_0x31a8c9[_0x1ad3('0x1d')]=qs[_0x1ad3('0x1d')](_0x4eff72['query']['offset']);}_0x31a8c9[_0x1ad3('0x3a')]=qs[_0x1ad3('0x3b')](_0x4eff72[_0x1ad3('0x34')]['sort']);_0x31a8c9[_0x1ad3('0x3c')]=qs[_0x1ad3('0x3d')](_[_0x1ad3('0x3e')](_0x4eff72[_0x1ad3('0x34')],_0x41069f[_0x1ad3('0x3d')]),_0x16800e);if(_0x4eff72[_0x1ad3('0x34')][_0x1ad3('0x3f')]){_0x31a8c9[_0x1ad3('0x3c')]=_[_0x1ad3('0x40')](_0x31a8c9[_0x1ad3('0x3c')],{'$or':_['map'](_0x16800e,function(_0x2dc17d){if(_0x2dc17d['type']!==_0x1ad3('0x41')){var _0x359ab1={};_0x359ab1[_0x2dc17d[_0x1ad3('0x29')]]={'$like':'%'+_0x4eff72['query'][_0x1ad3('0x3f')]+'%'};return _0x359ab1;}})});}_0x31a8c9=_[_0x1ad3('0x40')]({},_0x31a8c9,_0x4eff72['options']);var _0x58c96f={'where':_0x31a8c9[_0x1ad3('0x3c')]};return db['Schedule']['count'](_0x58c96f)[_0x1ad3('0x23')](function(_0xb483e3){_0x422170[_0x1ad3('0x1c')]=_0xb483e3;if(_0x4eff72['query'][_0x1ad3('0x42')]){_0x31a8c9[_0x1ad3('0x43')]=[{'all':!![]}];}return db[_0x1ad3('0x2c')][_0x1ad3('0x44')](_0x31a8c9);})[_0x1ad3('0x23')](function(_0x540972){_0x422170[_0x1ad3('0x45')]=_0x540972;return _0x422170;})[_0x1ad3('0x23')](respondWithFilteredResult(_0x228e67,_0x31a8c9))[_0x1ad3('0x46')](handleError(_0x228e67,null));};exports[_0x1ad3('0x47')]=function(_0x54c650,_0x4c625e){var _0x2b7ca2={'raw':![],'where':{'id':_0x54c650[_0x1ad3('0x48')]['id']}},_0x2af630={};_0x2af630[_0x1ad3('0x31')]=_[_0x1ad3('0x33')](db[_0x1ad3('0x2c')]['rawAttributes']);_0x2af630[_0x1ad3('0x34')]=_[_0x1ad3('0x33')](_0x54c650[_0x1ad3('0x34')]);_0x2af630['filters']=_['intersection'](_0x2af630[_0x1ad3('0x31')],_0x2af630['query']);_0x2b7ca2[_0x1ad3('0x37')]=_['intersection'](_0x2af630[_0x1ad3('0x31')],qs['fields'](_0x54c650[_0x1ad3('0x34')][_0x1ad3('0x36')]));_0x2b7ca2['attributes']=_0x2b7ca2[_0x1ad3('0x37')][_0x1ad3('0x49')]?_0x2b7ca2[_0x1ad3('0x37')]:_0x2af630[_0x1ad3('0x31')];if(_0x54c650['query']['includeAll']){_0x2b7ca2['include']=[{'all':!![]}];}_0x2b7ca2=_[_0x1ad3('0x40')]({},_0x2b7ca2,_0x54c650[_0x1ad3('0x4a')]);return db['Schedule'][_0x1ad3('0x4b')](_0x2b7ca2)[_0x1ad3('0x23')](handleEntityNotFound(_0x4c625e,null))[_0x1ad3('0x23')](respondWithResult(_0x4c625e,null))[_0x1ad3('0x46')](handleError(_0x4c625e,null));};exports[_0x1ad3('0x4c')]=function(_0x596a9b,_0x57efcf){return db['Schedule'][_0x1ad3('0x4c')](_0x596a9b[_0x1ad3('0x4d')],{})['then'](function(_0x59e4db){var _0x1f3907=_0x596a9b[_0x1ad3('0x4e')][_0x1ad3('0x25')]({'plain':!![]});if(!_0x1f3907)throw new Error(_0x1ad3('0x4f'));if(_0x1f3907[_0x1ad3('0x50')]===_0x1ad3('0x4e')){var _0x32ddaa=_0x59e4db[_0x1ad3('0x25')]({'plain':!![]});var _0x2e2c6c=_0x1ad3('0x26');return db[_0x1ad3('0x51')]['find']({'where':{'name':_0x2e2c6c,'userProfileId':_0x1f3907['userProfileId']},'raw':!![]})[_0x1ad3('0x23')](function(_0x1442e9){if(_0x1442e9&&_0x1442e9['autoAssociation']===0x0){return db[_0x1ad3('0x27')][_0x1ad3('0x4c')]({'name':_0x32ddaa[_0x1ad3('0x29')],'resourceId':_0x32ddaa['id'],'type':_0x1442e9['name'],'sectionId':_0x1442e9['id']},{})[_0x1ad3('0x23')](function(){return _0x59e4db;});}else{return _0x59e4db;}})['catch'](function(_0x17c1ba){logger[_0x1ad3('0x28')](_0x1ad3('0x52'),_0x17c1ba);throw _0x17c1ba;});}return _0x59e4db;})['then'](respondWithResult(_0x57efcf,0xc9))[_0x1ad3('0x46')](handleError(_0x57efcf,null));};exports['update']=function(_0x84dd3b,_0x1d1529){if(_0x84dd3b[_0x1ad3('0x4d')]['id']){delete _0x84dd3b[_0x1ad3('0x4d')]['id'];}return db[_0x1ad3('0x2c')][_0x1ad3('0x4b')]({'where':{'id':_0x84dd3b['params']['id']}})['then'](handleEntityNotFound(_0x1d1529,null))[_0x1ad3('0x23')](saveUpdates(_0x84dd3b[_0x1ad3('0x4d')],null))[_0x1ad3('0x23')](respondWithResult(_0x1d1529,null))[_0x1ad3('0x46')](handleError(_0x1d1529,null));};exports[_0x1ad3('0x24')]=function(_0x6750ff,_0x3c6176){return db['Schedule'][_0x1ad3('0x4b')]({'where':{'id':_0x6750ff[_0x1ad3('0x48')]['id']}})[_0x1ad3('0x23')](handleEntityNotFound(_0x3c6176,null))['then'](removeEntity(_0x3c6176,null))[_0x1ad3('0x46')](handleError(_0x3c6176,null));};exports['run']=function(_0x1df379,_0x35138b,_0x886c98){var _0xa86902=require(_0x1ad3('0x53'));return db['Schedule'][_0x1ad3('0x4b')]({'where':{'id':_0x1df379[_0x1ad3('0x48')]['id']},'raw':!![]})[_0x1ad3('0x23')](handleEntityNotFound(_0x35138b,null))[_0x1ad3('0x23')](function(){_0xa86902[_0x1ad3('0x54')](_0x1df379[_0x1ad3('0x48')]['id']);})[_0x1ad3('0x23')](respondWithStatusCode(_0x35138b,null))[_0x1ad3('0x46')](handleError(_0x35138b,null));};