Built motion from commit efa66e19.|2.6.22
[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 _0x2d39=['include','rows','show','keys','rawAttributes','find','catch','create','user','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','body','params','run','../../config/schedule','eml-format','rimraf','zip-dir','bluebird','mustache','util','path','to-csv','ejs','fs-extra','crypto','jsforce','desk.js','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/license/util','../../mysqldb','sendStatus','status','end','undefined','limit','count','offset','Content-Range','apply','update','then','destroy','Scheduler','error','name','send','index','map','type','key','model','query','filters','intersection','fields','attributes','length','hasOwnProperty','order','sort','where','pick','filter','merge','VIRTUAL','options','Schedule','includeAll'];(function(_0xfd96f3,_0x3c3f80){var _0x5aadd8=function(_0x432182){while(--_0x432182){_0xfd96f3['push'](_0xfd96f3['shift']());}};_0x5aadd8(++_0x3c3f80);}(_0x2d39,0x1e7));var _0x92d3=function(_0x10def7,_0x661f22){_0x10def7=_0x10def7-0x0;var _0xb4cae1=_0x2d39[_0x10def7];return _0xb4cae1;};'use strict';var emlformat=require(_0x92d3('0x0'));var rimraf=require(_0x92d3('0x1'));var zipdir=require(_0x92d3('0x2'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0x92d3('0x3'));var Mustache=require(_0x92d3('0x4'));var util=require(_0x92d3('0x5'));var path=require(_0x92d3('0x6'));var sox=require('sox');var csv=require(_0x92d3('0x7'));var ejs=require(_0x92d3('0x8'));var fs=require('fs');var fs_extra=require(_0x92d3('0x9'));var _=require('lodash');var squel=require('squel');var crypto=require(_0x92d3('0xa'));var jsforce=require(_0x92d3('0xb'));var deskjs=require(_0x92d3('0xc'));var toCsv=require(_0x92d3('0x7'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0x92d3('0xd'));var authService=require(_0x92d3('0xe'));var qs=require('../../components/parsers/qs');var as=require(_0x92d3('0xf'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x92d3('0x10'))(_0x92d3('0x11'));var utils=require(_0x92d3('0x12'));var config=require('../../config/environment');var licenseUtil=require(_0x92d3('0x13'));var db=require(_0x92d3('0x14'))['db'];function respondWithStatusCode(_0x3d236d,_0x2fe5a1){_0x2fe5a1=_0x2fe5a1||0xcc;return function(_0x39007b){if(_0x39007b){return _0x3d236d[_0x92d3('0x15')](_0x2fe5a1);}return _0x3d236d[_0x92d3('0x16')](_0x2fe5a1)[_0x92d3('0x17')]();};}function respondWithResult(_0x571123,_0x59f69b){_0x59f69b=_0x59f69b||0xc8;return function(_0x3af932){if(_0x3af932){return _0x571123[_0x92d3('0x16')](_0x59f69b)['json'](_0x3af932);}};}function respondWithFilteredResult(_0x488a75,_0x5a674d){return function(_0x3b8ddb){if(_0x3b8ddb){var _0x20de3e=typeof _0x5a674d['offset']===_0x92d3('0x18')&&typeof _0x5a674d[_0x92d3('0x19')]==='undefined';var _0x9f7189=_0x3b8ddb[_0x92d3('0x1a')];var _0x4ae852=_0x20de3e?0x0:_0x5a674d[_0x92d3('0x1b')];var _0x44fcda=_0x20de3e?_0x3b8ddb[_0x92d3('0x1a')]:_0x5a674d[_0x92d3('0x1b')]+_0x5a674d[_0x92d3('0x19')];var _0x5cf82a;if(_0x44fcda>=_0x9f7189){_0x44fcda=_0x9f7189;_0x5cf82a=0xc8;}else{_0x5cf82a=0xce;}_0x488a75[_0x92d3('0x16')](_0x5cf82a);return _0x488a75['set'](_0x92d3('0x1c'),_0x4ae852+'-'+_0x44fcda+'/'+_0x9f7189)['json'](_0x3b8ddb);}return null;};}function patchUpdates(_0x579a46){return function(_0x5475bb){try{jsonpatch[_0x92d3('0x1d')](_0x5475bb,_0x579a46,!![]);}catch(_0x23995d){return BPromise['reject'](_0x23995d);}return _0x5475bb['save']();};}function saveUpdates(_0x1d9073,_0x2a2451){return function(_0x2c33e7){if(_0x2c33e7){return _0x2c33e7[_0x92d3('0x1e')](_0x1d9073)[_0x92d3('0x1f')](function(_0x129ee8){return _0x129ee8;});}return null;};}function removeEntity(_0x3a5b19,_0x14d216){return function(_0x33f298){if(_0x33f298){return _0x33f298[_0x92d3('0x20')]()[_0x92d3('0x1f')](function(){var _0x1a1ba6=_0x33f298['get']({'plain':!![]});var _0x3cf2aa=_0x92d3('0x21');return db['UserProfileResource'][_0x92d3('0x20')]({'where':{'type':_0x3cf2aa,'resourceId':_0x1a1ba6['id']}})[_0x92d3('0x1f')](function(){return _0x33f298;});})[_0x92d3('0x1f')](function(){_0x3a5b19[_0x92d3('0x16')](0xcc)['end']();});}};}function handleEntityNotFound(_0x19cacd,_0x2b088b){return function(_0x3f1197){if(!_0x3f1197){_0x19cacd[_0x92d3('0x15')](0x194);}return _0x3f1197;};}function handleError(_0x54b2d4,_0x58f297){_0x58f297=_0x58f297||0x1f4;return function(_0x2350ff){logger[_0x92d3('0x22')](_0x2350ff['stack']);if(_0x2350ff[_0x92d3('0x23')]){delete _0x2350ff[_0x92d3('0x23')];}_0x54b2d4[_0x92d3('0x16')](_0x58f297)[_0x92d3('0x24')](_0x2350ff);};}exports[_0x92d3('0x25')]=function(_0x3cc2c4,_0x804de7){var _0x54b31f={},_0x2970de={},_0x498dbb={'count':0x0,'rows':[]};var _0x4ccf0b=_[_0x92d3('0x26')](db['Schedule']['rawAttributes'],function(_0x9ae2ea){return{'name':_0x9ae2ea['fieldName'],'type':_0x9ae2ea[_0x92d3('0x27')][_0x92d3('0x28')]};});_0x2970de[_0x92d3('0x29')]=_[_0x92d3('0x26')](_0x4ccf0b,_0x92d3('0x23'));_0x2970de[_0x92d3('0x2a')]=_['keys'](_0x3cc2c4['query']);_0x2970de[_0x92d3('0x2b')]=_[_0x92d3('0x2c')](_0x2970de[_0x92d3('0x29')],_0x2970de[_0x92d3('0x2a')]);_0x54b31f['attributes']=_['intersection'](_0x2970de[_0x92d3('0x29')],qs[_0x92d3('0x2d')](_0x3cc2c4[_0x92d3('0x2a')][_0x92d3('0x2d')]));_0x54b31f[_0x92d3('0x2e')]=_0x54b31f[_0x92d3('0x2e')][_0x92d3('0x2f')]?_0x54b31f[_0x92d3('0x2e')]:_0x2970de[_0x92d3('0x29')];if(!_0x3cc2c4['query'][_0x92d3('0x30')]('nolimit')){_0x54b31f['limit']=qs['limit'](_0x3cc2c4[_0x92d3('0x2a')][_0x92d3('0x19')]);_0x54b31f[_0x92d3('0x1b')]=qs['offset'](_0x3cc2c4['query'][_0x92d3('0x1b')]);}_0x54b31f[_0x92d3('0x31')]=qs[_0x92d3('0x32')](_0x3cc2c4[_0x92d3('0x2a')][_0x92d3('0x32')]);_0x54b31f[_0x92d3('0x33')]=qs['filters'](_[_0x92d3('0x34')](_0x3cc2c4[_0x92d3('0x2a')],_0x2970de[_0x92d3('0x2b')]),_0x4ccf0b);if(_0x3cc2c4[_0x92d3('0x2a')][_0x92d3('0x35')]){_0x54b31f[_0x92d3('0x33')]=_[_0x92d3('0x36')](_0x54b31f[_0x92d3('0x33')],{'$or':_[_0x92d3('0x26')](_0x4ccf0b,function(_0x1f3c31){if(_0x1f3c31[_0x92d3('0x27')]!==_0x92d3('0x37')){var _0x566b8e={};_0x566b8e[_0x1f3c31[_0x92d3('0x23')]]={'$like':'%'+_0x3cc2c4['query'][_0x92d3('0x35')]+'%'};return _0x566b8e;}})});}_0x54b31f=_['merge']({},_0x54b31f,_0x3cc2c4[_0x92d3('0x38')]);var _0x4f9b41={'where':_0x54b31f[_0x92d3('0x33')]};return db[_0x92d3('0x39')][_0x92d3('0x1a')](_0x4f9b41)[_0x92d3('0x1f')](function(_0x9acade){_0x498dbb['count']=_0x9acade;if(_0x3cc2c4['query'][_0x92d3('0x3a')]){_0x54b31f[_0x92d3('0x3b')]=[{'all':!![]}];}return db[_0x92d3('0x39')]['findAll'](_0x54b31f);})['then'](function(_0x30de35){_0x498dbb[_0x92d3('0x3c')]=_0x30de35;return _0x498dbb;})[_0x92d3('0x1f')](respondWithFilteredResult(_0x804de7,_0x54b31f))['catch'](handleError(_0x804de7,null));};exports[_0x92d3('0x3d')]=function(_0x45147d,_0x4663bd){var _0x48ef48={'raw':![],'where':{'id':_0x45147d['params']['id']}},_0x2c6815={};_0x2c6815['model']=_[_0x92d3('0x3e')](db[_0x92d3('0x39')][_0x92d3('0x3f')]);_0x2c6815[_0x92d3('0x2a')]=_[_0x92d3('0x3e')](_0x45147d[_0x92d3('0x2a')]);_0x2c6815[_0x92d3('0x2b')]=_[_0x92d3('0x2c')](_0x2c6815['model'],_0x2c6815[_0x92d3('0x2a')]);_0x48ef48['attributes']=_['intersection'](_0x2c6815['model'],qs[_0x92d3('0x2d')](_0x45147d[_0x92d3('0x2a')]['fields']));_0x48ef48['attributes']=_0x48ef48['attributes'][_0x92d3('0x2f')]?_0x48ef48['attributes']:_0x2c6815[_0x92d3('0x29')];if(_0x45147d[_0x92d3('0x2a')][_0x92d3('0x3a')]){_0x48ef48[_0x92d3('0x3b')]=[{'all':!![]}];}_0x48ef48=_[_0x92d3('0x36')]({},_0x48ef48,_0x45147d['options']);return db[_0x92d3('0x39')][_0x92d3('0x40')](_0x48ef48)[_0x92d3('0x1f')](handleEntityNotFound(_0x4663bd,null))[_0x92d3('0x1f')](respondWithResult(_0x4663bd,null))[_0x92d3('0x41')](handleError(_0x4663bd,null));};exports[_0x92d3('0x42')]=function(_0x31247e,_0xf12e17){return db[_0x92d3('0x39')][_0x92d3('0x42')](_0x31247e['body'],{})[_0x92d3('0x1f')](function(_0x42e892){var _0x43d1c4=_0x31247e[_0x92d3('0x43')][_0x92d3('0x44')]({'plain':!![]});if(!_0x43d1c4)throw new Error(_0x92d3('0x45'));if(_0x43d1c4[_0x92d3('0x46')]==='user'){var _0x3a3d60=_0x42e892[_0x92d3('0x44')]({'plain':!![]});var _0x3ab512=_0x92d3('0x21');return db['UserProfileSection'][_0x92d3('0x40')]({'where':{'name':_0x3ab512,'userProfileId':_0x43d1c4[_0x92d3('0x47')]},'raw':!![]})[_0x92d3('0x1f')](function(_0x2506d2){if(_0x2506d2&&_0x2506d2[_0x92d3('0x48')]===0x0){return db['UserProfileResource'][_0x92d3('0x42')]({'name':_0x3a3d60[_0x92d3('0x23')],'resourceId':_0x3a3d60['id'],'type':_0x2506d2[_0x92d3('0x23')],'sectionId':_0x2506d2['id']},{})[_0x92d3('0x1f')](function(){return _0x42e892;});}else{return _0x42e892;}})[_0x92d3('0x41')](function(_0x5b4930){logger[_0x92d3('0x22')](_0x92d3('0x49'),_0x5b4930);throw _0x5b4930;});}return _0x42e892;})['then'](respondWithResult(_0xf12e17,0xc9))[_0x92d3('0x41')](handleError(_0xf12e17,null));};exports[_0x92d3('0x1e')]=function(_0x3a6230,_0x1a09a8){if(_0x3a6230['body']['id']){delete _0x3a6230[_0x92d3('0x4a')]['id'];}return db[_0x92d3('0x39')][_0x92d3('0x40')]({'where':{'id':_0x3a6230[_0x92d3('0x4b')]['id']}})[_0x92d3('0x1f')](handleEntityNotFound(_0x1a09a8,null))['then'](saveUpdates(_0x3a6230['body'],null))[_0x92d3('0x1f')](respondWithResult(_0x1a09a8,null))[_0x92d3('0x41')](handleError(_0x1a09a8,null));};exports[_0x92d3('0x20')]=function(_0x7e7888,_0xfcb6d0){return db[_0x92d3('0x39')][_0x92d3('0x40')]({'where':{'id':_0x7e7888[_0x92d3('0x4b')]['id']}})[_0x92d3('0x1f')](handleEntityNotFound(_0xfcb6d0,null))[_0x92d3('0x1f')](removeEntity(_0xfcb6d0,null))[_0x92d3('0x41')](handleError(_0xfcb6d0,null));};exports[_0x92d3('0x4c')]=function(_0x4ae85a,_0x500924,_0x120ef6){var _0x99bb58=require(_0x92d3('0x4d'));return db[_0x92d3('0x39')][_0x92d3('0x40')]({'where':{'id':_0x4ae85a[_0x92d3('0x4b')]['id']},'raw':!![]})[_0x92d3('0x1f')](handleEntityNotFound(_0x500924,null))['then'](function(){_0x99bb58['run'](_0x4ae85a[_0x92d3('0x4b')]['id']);})[_0x92d3('0x1f')](respondWithStatusCode(_0x500924,null))[_0x92d3('0x41')](handleError(_0x500924,null));};