39d3040ac38cdf81a80e0a8cc0b441e750b9eb23
[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 _0x10b9=['json','offset','undefined','count','limit','Content-Range','apply','reject','save','then','destroy','get','Scheduler','UserProfileResource','end','error','stack','name','send','index','map','rawAttributes','fieldName','type','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','order','sort','filter','merge','VIRTUAL','options','where','Schedule','include','findAll','rows','catch','show','params','includeAll','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','run','../../config/schedule','rimraf','zip-dir','request-promise','moment','bluebird','mustache','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/logger','api','../../config/utils','../../config/license/util','../../mysqldb','sendStatus','status'];(function(_0x482c95,_0x504190){var _0x38c2e8=function(_0x5685df){while(--_0x5685df){_0x482c95['push'](_0x482c95['shift']());}};_0x38c2e8(++_0x504190);}(_0x10b9,0x146));var _0x910b=function(_0x226d37,_0x27a759){_0x226d37=_0x226d37-0x0;var _0x208ef9=_0x10b9[_0x226d37];return _0x208ef9;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x910b('0x0'));var zipdir=require(_0x910b('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0x910b('0x2'));var moment=require(_0x910b('0x3'));var BPromise=require(_0x910b('0x4'));var Mustache=require(_0x910b('0x5'));var util=require(_0x910b('0x6'));var path=require(_0x910b('0x7'));var sox=require(_0x910b('0x8'));var csv=require(_0x910b('0x9'));var ejs=require(_0x910b('0xa'));var fs=require('fs');var fs_extra=require(_0x910b('0xb'));var _=require(_0x910b('0xc'));var squel=require(_0x910b('0xd'));var crypto=require(_0x910b('0xe'));var jsforce=require(_0x910b('0xf'));var deskjs=require(_0x910b('0x10'));var toCsv=require(_0x910b('0x9'));var querystring=require(_0x910b('0x11'));var Papa=require(_0x910b('0x12'));var Redis=require(_0x910b('0x13'));var authService=require(_0x910b('0x14'));var qs=require(_0x910b('0x15'));var as=require(_0x910b('0x16'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x910b('0x17'))(_0x910b('0x18'));var utils=require(_0x910b('0x19'));var config=require('../../config/environment');var licenseUtil=require(_0x910b('0x1a'));var db=require(_0x910b('0x1b'))['db'];function respondWithStatusCode(_0x111c71,_0x9e2e07){_0x9e2e07=_0x9e2e07||0xcc;return function(_0x7cf7bb){if(_0x7cf7bb){return _0x111c71[_0x910b('0x1c')](_0x9e2e07);}return _0x111c71[_0x910b('0x1d')](_0x9e2e07)['end']();};}function respondWithResult(_0x38f40d,_0x546584){_0x546584=_0x546584||0xc8;return function(_0x3708e8){if(_0x3708e8){return _0x38f40d[_0x910b('0x1d')](_0x546584)[_0x910b('0x1e')](_0x3708e8);}};}function respondWithFilteredResult(_0xe53598,_0x5577a6){return function(_0x30a022){if(_0x30a022){var _0x2a55cc=typeof _0x5577a6[_0x910b('0x1f')]===_0x910b('0x20')&&typeof _0x5577a6['limit']==='undefined';var _0x1d39e6=_0x30a022['count'];var _0x2b7ebd=_0x2a55cc?0x0:_0x5577a6[_0x910b('0x1f')];var _0xf078c6=_0x2a55cc?_0x30a022[_0x910b('0x21')]:_0x5577a6[_0x910b('0x1f')]+_0x5577a6[_0x910b('0x22')];var _0x400efe;if(_0xf078c6>=_0x1d39e6){_0xf078c6=_0x1d39e6;_0x400efe=0xc8;}else{_0x400efe=0xce;}_0xe53598[_0x910b('0x1d')](_0x400efe);return _0xe53598['set'](_0x910b('0x23'),_0x2b7ebd+'-'+_0xf078c6+'/'+_0x1d39e6)[_0x910b('0x1e')](_0x30a022);}return null;};}function patchUpdates(_0x593d07){return function(_0xf80c0e){try{jsonpatch[_0x910b('0x24')](_0xf80c0e,_0x593d07,!![]);}catch(_0x5bcfdc){return BPromise[_0x910b('0x25')](_0x5bcfdc);}return _0xf80c0e[_0x910b('0x26')]();};}function saveUpdates(_0x1a719d,_0x47b5f8){return function(_0x1faeaf){if(_0x1faeaf){return _0x1faeaf['update'](_0x1a719d)[_0x910b('0x27')](function(_0x1c7f59){return _0x1c7f59;});}return null;};}function removeEntity(_0x127b5e,_0x277a6e){return function(_0x24a89b){if(_0x24a89b){return _0x24a89b[_0x910b('0x28')]()['then'](function(){var _0x18ceec=_0x24a89b[_0x910b('0x29')]({'plain':!![]});var _0x52af13=_0x910b('0x2a');return db[_0x910b('0x2b')][_0x910b('0x28')]({'where':{'type':_0x52af13,'resourceId':_0x18ceec['id']}})[_0x910b('0x27')](function(){return _0x24a89b;});})[_0x910b('0x27')](function(){_0x127b5e[_0x910b('0x1d')](0xcc)[_0x910b('0x2c')]();});}};}function handleEntityNotFound(_0x12c929,_0x436569){return function(_0x775d4f){if(!_0x775d4f){_0x12c929['sendStatus'](0x194);}return _0x775d4f;};}function handleError(_0x285090,_0x512c26){_0x512c26=_0x512c26||0x1f4;return function(_0x470f45){logger[_0x910b('0x2d')](_0x470f45[_0x910b('0x2e')]);if(_0x470f45['name']){delete _0x470f45[_0x910b('0x2f')];}_0x285090[_0x910b('0x1d')](_0x512c26)[_0x910b('0x30')](_0x470f45);};}exports[_0x910b('0x31')]=function(_0x4abca1,_0x4a6a6c){var _0xc29111={},_0x314e0a={},_0x3b617b={'count':0x0,'rows':[]};var _0x212cef=_[_0x910b('0x32')](db['Schedule'][_0x910b('0x33')],function(_0x14bfcc){return{'name':_0x14bfcc[_0x910b('0x34')],'type':_0x14bfcc[_0x910b('0x35')]['key']};});_0x314e0a[_0x910b('0x36')]=_[_0x910b('0x32')](_0x212cef,'name');_0x314e0a[_0x910b('0x37')]=_[_0x910b('0x38')](_0x4abca1[_0x910b('0x37')]);_0x314e0a[_0x910b('0x39')]=_[_0x910b('0x3a')](_0x314e0a[_0x910b('0x36')],_0x314e0a[_0x910b('0x37')]);_0xc29111[_0x910b('0x3b')]=_[_0x910b('0x3a')](_0x314e0a[_0x910b('0x36')],qs[_0x910b('0x3c')](_0x4abca1['query'][_0x910b('0x3c')]));_0xc29111[_0x910b('0x3b')]=_0xc29111[_0x910b('0x3b')][_0x910b('0x3d')]?_0xc29111[_0x910b('0x3b')]:_0x314e0a[_0x910b('0x36')];if(!_0x4abca1[_0x910b('0x37')][_0x910b('0x3e')]('nolimit')){_0xc29111['limit']=qs['limit'](_0x4abca1[_0x910b('0x37')][_0x910b('0x22')]);_0xc29111[_0x910b('0x1f')]=qs[_0x910b('0x1f')](_0x4abca1[_0x910b('0x37')][_0x910b('0x1f')]);}_0xc29111[_0x910b('0x3f')]=qs[_0x910b('0x40')](_0x4abca1[_0x910b('0x37')][_0x910b('0x40')]);_0xc29111['where']=qs['filters'](_['pick'](_0x4abca1[_0x910b('0x37')],_0x314e0a['filters']),_0x212cef);if(_0x4abca1[_0x910b('0x37')][_0x910b('0x41')]){_0xc29111['where']=_[_0x910b('0x42')](_0xc29111['where'],{'$or':_[_0x910b('0x32')](_0x212cef,function(_0x5c8962){if(_0x5c8962[_0x910b('0x35')]!==_0x910b('0x43')){var _0x6c01f6={};_0x6c01f6[_0x5c8962['name']]={'$like':'%'+_0x4abca1['query']['filter']+'%'};return _0x6c01f6;}})});}_0xc29111=_[_0x910b('0x42')]({},_0xc29111,_0x4abca1[_0x910b('0x44')]);var _0x4e463c={'where':_0xc29111[_0x910b('0x45')]};return db[_0x910b('0x46')][_0x910b('0x21')](_0x4e463c)[_0x910b('0x27')](function(_0x26d1d3){_0x3b617b[_0x910b('0x21')]=_0x26d1d3;if(_0x4abca1[_0x910b('0x37')]['includeAll']){_0xc29111[_0x910b('0x47')]=[{'all':!![]}];}return db[_0x910b('0x46')][_0x910b('0x48')](_0xc29111);})['then'](function(_0x2e3465){_0x3b617b[_0x910b('0x49')]=_0x2e3465;return _0x3b617b;})[_0x910b('0x27')](respondWithFilteredResult(_0x4a6a6c,_0xc29111))[_0x910b('0x4a')](handleError(_0x4a6a6c,null));};exports[_0x910b('0x4b')]=function(_0x38baf6,_0x12e94b){var _0x213dcd={'raw':![],'where':{'id':_0x38baf6[_0x910b('0x4c')]['id']}},_0x583706={};_0x583706[_0x910b('0x36')]=_[_0x910b('0x38')](db[_0x910b('0x46')][_0x910b('0x33')]);_0x583706[_0x910b('0x37')]=_[_0x910b('0x38')](_0x38baf6[_0x910b('0x37')]);_0x583706['filters']=_[_0x910b('0x3a')](_0x583706[_0x910b('0x36')],_0x583706['query']);_0x213dcd[_0x910b('0x3b')]=_[_0x910b('0x3a')](_0x583706[_0x910b('0x36')],qs[_0x910b('0x3c')](_0x38baf6[_0x910b('0x37')][_0x910b('0x3c')]));_0x213dcd[_0x910b('0x3b')]=_0x213dcd[_0x910b('0x3b')][_0x910b('0x3d')]?_0x213dcd[_0x910b('0x3b')]:_0x583706[_0x910b('0x36')];if(_0x38baf6[_0x910b('0x37')][_0x910b('0x4d')]){_0x213dcd[_0x910b('0x47')]=[{'all':!![]}];}_0x213dcd=_[_0x910b('0x42')]({},_0x213dcd,_0x38baf6[_0x910b('0x44')]);return db[_0x910b('0x46')][_0x910b('0x4e')](_0x213dcd)[_0x910b('0x27')](handleEntityNotFound(_0x12e94b,null))[_0x910b('0x27')](respondWithResult(_0x12e94b,null))[_0x910b('0x4a')](handleError(_0x12e94b,null));};exports[_0x910b('0x4f')]=function(_0x425740,_0x1538b6){return db[_0x910b('0x46')]['create'](_0x425740[_0x910b('0x50')],{})[_0x910b('0x27')](function(_0x277fae){var _0x3743f1=_0x425740[_0x910b('0x51')][_0x910b('0x29')]({'plain':!![]});if(!_0x3743f1)throw new Error(_0x910b('0x52'));if(_0x3743f1[_0x910b('0x53')]===_0x910b('0x51')){var _0x3e1871=_0x277fae[_0x910b('0x29')]({'plain':!![]});var _0x3d93eb=_0x910b('0x2a');return db[_0x910b('0x54')][_0x910b('0x4e')]({'where':{'name':_0x3d93eb,'userProfileId':_0x3743f1['userProfileId']},'raw':!![]})[_0x910b('0x27')](function(_0xd5dc68){if(_0xd5dc68&&_0xd5dc68[_0x910b('0x55')]===0x0){return db[_0x910b('0x2b')][_0x910b('0x4f')]({'name':_0x3e1871[_0x910b('0x2f')],'resourceId':_0x3e1871['id'],'type':_0xd5dc68[_0x910b('0x2f')],'sectionId':_0xd5dc68['id']},{})['then'](function(){return _0x277fae;});}else{return _0x277fae;}})[_0x910b('0x4a')](function(_0x563251){logger[_0x910b('0x2d')](_0x910b('0x56'),_0x563251);throw _0x563251;});}return _0x277fae;})['then'](respondWithResult(_0x1538b6,0xc9))[_0x910b('0x4a')](handleError(_0x1538b6,null));};exports['update']=function(_0x3b6829,_0x5eba36){if(_0x3b6829[_0x910b('0x50')]['id']){delete _0x3b6829[_0x910b('0x50')]['id'];}return db[_0x910b('0x46')][_0x910b('0x4e')]({'where':{'id':_0x3b6829[_0x910b('0x4c')]['id']}})[_0x910b('0x27')](handleEntityNotFound(_0x5eba36,null))[_0x910b('0x27')](saveUpdates(_0x3b6829['body'],null))[_0x910b('0x27')](respondWithResult(_0x5eba36,null))[_0x910b('0x4a')](handleError(_0x5eba36,null));};exports[_0x910b('0x28')]=function(_0x17f5ad,_0x284c8c){return db[_0x910b('0x46')][_0x910b('0x4e')]({'where':{'id':_0x17f5ad[_0x910b('0x4c')]['id']}})[_0x910b('0x27')](handleEntityNotFound(_0x284c8c,null))[_0x910b('0x27')](removeEntity(_0x284c8c,null))[_0x910b('0x4a')](handleError(_0x284c8c,null));};exports[_0x910b('0x57')]=function(_0x25a4f4,_0x335ade,_0x1dbc9d){var _0x5dd6e2=require(_0x910b('0x58'));return db[_0x910b('0x46')]['find']({'where':{'id':_0x25a4f4[_0x910b('0x4c')]['id']},'raw':!![]})['then'](handleEntityNotFound(_0x335ade,null))[_0x910b('0x27')](function(){_0x5dd6e2[_0x910b('0x57')](_0x25a4f4[_0x910b('0x4c')]['id']);})[_0x910b('0x27')](respondWithStatusCode(_0x335ade,null))[_0x910b('0x4a')](handleError(_0x335ade,null));};