Built motion from commit b5413ace.|2.6.9
[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 _0xa0d2=['body','run','../../config/schedule','moment','bluebird','util','path','sox','to-csv','fs-extra','lodash','squel','crypto','jsforce','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','sendStatus','status','end','json','offset','limit','count','set','apply','reject','save','destroy','then','UserProfileResource','error','stack','name','index','map','Schedule','rawAttributes','type','model','keys','filters','intersection','fields','query','attributes','length','sort','where','pick','merge','VIRTUAL','filter','options','include','findAll','rows','catch','show','params','includeAll','find','create','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','Scheduler','userProfileId','update'];(function(_0x3ae17b,_0x43fb59){var _0xcd2806=function(_0x452522){while(--_0x452522){_0x3ae17b['push'](_0x3ae17b['shift']());}};_0xcd2806(++_0x43fb59);}(_0xa0d2,0x97));var _0x2a0d=function(_0x4d5725,_0x5df293){_0x4d5725=_0x4d5725-0x0;var _0x519855=_0xa0d2[_0x4d5725];return _0x519855;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0x2a0d('0x0'));var BPromise=require(_0x2a0d('0x1'));var Mustache=require('mustache');var util=require(_0x2a0d('0x2'));var path=require(_0x2a0d('0x3'));var sox=require(_0x2a0d('0x4'));var csv=require(_0x2a0d('0x5'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x2a0d('0x6'));var _=require(_0x2a0d('0x7'));var squel=require(_0x2a0d('0x8'));var crypto=require(_0x2a0d('0x9'));var jsforce=require(_0x2a0d('0xa'));var deskjs=require(_0x2a0d('0xb'));var toCsv=require(_0x2a0d('0x5'));var querystring=require('querystring');var Papa=require(_0x2a0d('0xc'));var Redis=require(_0x2a0d('0xd'));var authService=require(_0x2a0d('0xe'));var qs=require(_0x2a0d('0xf'));var as=require(_0x2a0d('0x10'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x2a0d('0x11'))(_0x2a0d('0x12'));var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x54abb9,_0x5e321d){_0x5e321d=_0x5e321d||0xcc;return function(_0xb37590){if(_0xb37590){return _0x54abb9[_0x2a0d('0x13')](_0x5e321d);}return _0x54abb9[_0x2a0d('0x14')](_0x5e321d)[_0x2a0d('0x15')]();};}function respondWithResult(_0x1213f1,_0x57a907){_0x57a907=_0x57a907||0xc8;return function(_0x10311d){if(_0x10311d){return _0x1213f1[_0x2a0d('0x14')](_0x57a907)[_0x2a0d('0x16')](_0x10311d);}};}function respondWithFilteredResult(_0x35ce2c,_0x450bd7){return function(_0x3a424c){if(_0x3a424c){var _0x5cc355=typeof _0x450bd7[_0x2a0d('0x17')]==='undefined'&&typeof _0x450bd7[_0x2a0d('0x18')]==='undefined';var _0x3f5684=_0x3a424c[_0x2a0d('0x19')];var _0x2ccc17=_0x5cc355?0x0:_0x450bd7[_0x2a0d('0x17')];var _0x18118f=_0x5cc355?_0x3a424c[_0x2a0d('0x19')]:_0x450bd7[_0x2a0d('0x17')]+_0x450bd7[_0x2a0d('0x18')];var _0x4bcd57;if(_0x18118f>=_0x3f5684){_0x18118f=_0x3f5684;_0x4bcd57=0xc8;}else{_0x4bcd57=0xce;}_0x35ce2c[_0x2a0d('0x14')](_0x4bcd57);return _0x35ce2c[_0x2a0d('0x1a')]('Content-Range',_0x2ccc17+'-'+_0x18118f+'/'+_0x3f5684)[_0x2a0d('0x16')](_0x3a424c);}return null;};}function patchUpdates(_0x3fa537){return function(_0x27e0c0){try{jsonpatch[_0x2a0d('0x1b')](_0x27e0c0,_0x3fa537,!![]);}catch(_0x36fac2){return BPromise[_0x2a0d('0x1c')](_0x36fac2);}return _0x27e0c0[_0x2a0d('0x1d')]();};}function saveUpdates(_0x11cb8f,_0x268181){return function(_0x3a10e0){if(_0x3a10e0){return _0x3a10e0['update'](_0x11cb8f)['then'](function(_0x101c6f){return _0x101c6f;});}return null;};}function removeEntity(_0x9512fb,_0x2d2094){return function(_0x331734){if(_0x331734){return _0x331734[_0x2a0d('0x1e')]()[_0x2a0d('0x1f')](function(){var _0x3ef9cf=_0x331734['get']({'plain':!![]});var _0x4c8cb7='Scheduler';return db[_0x2a0d('0x20')][_0x2a0d('0x1e')]({'where':{'type':_0x4c8cb7,'resourceId':_0x3ef9cf['id']}})[_0x2a0d('0x1f')](function(){return _0x331734;});})[_0x2a0d('0x1f')](function(){_0x9512fb['status'](0xcc)[_0x2a0d('0x15')]();});}};}function handleEntityNotFound(_0x2ab738,_0x23763f){return function(_0x51fdd2){if(!_0x51fdd2){_0x2ab738[_0x2a0d('0x13')](0x194);}return _0x51fdd2;};}function handleError(_0x2d17a0,_0x1ad197){_0x1ad197=_0x1ad197||0x1f4;return function(_0x210391){logger[_0x2a0d('0x21')](_0x210391[_0x2a0d('0x22')]);if(_0x210391[_0x2a0d('0x23')]){delete _0x210391[_0x2a0d('0x23')];}_0x2d17a0[_0x2a0d('0x14')](_0x1ad197)['send'](_0x210391);};}exports[_0x2a0d('0x24')]=function(_0xf679d4,_0x3bd3cc){var _0xf53204={},_0x338556={},_0x970fb4={'count':0x0,'rows':[]};var _0xd57b80=_[_0x2a0d('0x25')](db[_0x2a0d('0x26')][_0x2a0d('0x27')],function(_0x4edba4){return{'name':_0x4edba4['fieldName'],'type':_0x4edba4[_0x2a0d('0x28')]['key']};});_0x338556[_0x2a0d('0x29')]=_[_0x2a0d('0x25')](_0xd57b80,_0x2a0d('0x23'));_0x338556['query']=_[_0x2a0d('0x2a')](_0xf679d4['query']);_0x338556[_0x2a0d('0x2b')]=_[_0x2a0d('0x2c')](_0x338556[_0x2a0d('0x29')],_0x338556['query']);_0xf53204['attributes']=_[_0x2a0d('0x2c')](_0x338556['model'],qs[_0x2a0d('0x2d')](_0xf679d4[_0x2a0d('0x2e')][_0x2a0d('0x2d')]));_0xf53204['attributes']=_0xf53204[_0x2a0d('0x2f')][_0x2a0d('0x30')]?_0xf53204[_0x2a0d('0x2f')]:_0x338556['model'];if(!_0xf679d4[_0x2a0d('0x2e')]['hasOwnProperty']('nolimit')){_0xf53204['limit']=qs[_0x2a0d('0x18')](_0xf679d4['query'][_0x2a0d('0x18')]);_0xf53204[_0x2a0d('0x17')]=qs[_0x2a0d('0x17')](_0xf679d4[_0x2a0d('0x2e')][_0x2a0d('0x17')]);}_0xf53204['order']=qs[_0x2a0d('0x31')](_0xf679d4['query'][_0x2a0d('0x31')]);_0xf53204[_0x2a0d('0x32')]=qs['filters'](_[_0x2a0d('0x33')](_0xf679d4[_0x2a0d('0x2e')],_0x338556[_0x2a0d('0x2b')]),_0xd57b80);if(_0xf679d4[_0x2a0d('0x2e')]['filter']){_0xf53204[_0x2a0d('0x32')]=_[_0x2a0d('0x34')](_0xf53204['where'],{'$or':_['map'](_0xd57b80,function(_0xe89e2e){if(_0xe89e2e[_0x2a0d('0x28')]!==_0x2a0d('0x35')){var _0x54ffe5={};_0x54ffe5[_0xe89e2e[_0x2a0d('0x23')]]={'$like':'%'+_0xf679d4[_0x2a0d('0x2e')][_0x2a0d('0x36')]+'%'};return _0x54ffe5;}})});}_0xf53204=_[_0x2a0d('0x34')]({},_0xf53204,_0xf679d4[_0x2a0d('0x37')]);var _0x3b5eb9={'where':_0xf53204[_0x2a0d('0x32')]};return db[_0x2a0d('0x26')][_0x2a0d('0x19')](_0x3b5eb9)[_0x2a0d('0x1f')](function(_0x1625c7){_0x970fb4[_0x2a0d('0x19')]=_0x1625c7;if(_0xf679d4[_0x2a0d('0x2e')]['includeAll']){_0xf53204[_0x2a0d('0x38')]=[{'all':!![]}];}return db[_0x2a0d('0x26')][_0x2a0d('0x39')](_0xf53204);})[_0x2a0d('0x1f')](function(_0x3cf740){_0x970fb4[_0x2a0d('0x3a')]=_0x3cf740;return _0x970fb4;})[_0x2a0d('0x1f')](respondWithFilteredResult(_0x3bd3cc,_0xf53204))[_0x2a0d('0x3b')](handleError(_0x3bd3cc,null));};exports[_0x2a0d('0x3c')]=function(_0x6f5fb5,_0x2df8f1){var _0x504fbf={'raw':![],'where':{'id':_0x6f5fb5[_0x2a0d('0x3d')]['id']}},_0x1eb19e={};_0x1eb19e[_0x2a0d('0x29')]=_[_0x2a0d('0x2a')](db[_0x2a0d('0x26')][_0x2a0d('0x27')]);_0x1eb19e['query']=_[_0x2a0d('0x2a')](_0x6f5fb5['query']);_0x1eb19e[_0x2a0d('0x2b')]=_[_0x2a0d('0x2c')](_0x1eb19e[_0x2a0d('0x29')],_0x1eb19e[_0x2a0d('0x2e')]);_0x504fbf[_0x2a0d('0x2f')]=_['intersection'](_0x1eb19e[_0x2a0d('0x29')],qs[_0x2a0d('0x2d')](_0x6f5fb5[_0x2a0d('0x2e')][_0x2a0d('0x2d')]));_0x504fbf[_0x2a0d('0x2f')]=_0x504fbf[_0x2a0d('0x2f')][_0x2a0d('0x30')]?_0x504fbf[_0x2a0d('0x2f')]:_0x1eb19e[_0x2a0d('0x29')];if(_0x6f5fb5[_0x2a0d('0x2e')][_0x2a0d('0x3e')]){_0x504fbf['include']=[{'all':!![]}];}_0x504fbf=_[_0x2a0d('0x34')]({},_0x504fbf,_0x6f5fb5[_0x2a0d('0x37')]);return db[_0x2a0d('0x26')][_0x2a0d('0x3f')](_0x504fbf)[_0x2a0d('0x1f')](handleEntityNotFound(_0x2df8f1,null))[_0x2a0d('0x1f')](respondWithResult(_0x2df8f1,null))[_0x2a0d('0x3b')](handleError(_0x2df8f1,null));};exports['create']=function(_0x32bbca,_0x2ab6c4){return db[_0x2a0d('0x26')][_0x2a0d('0x40')](_0x32bbca['body'],{})[_0x2a0d('0x1f')](function(_0x4c238f){var _0x460527=_0x32bbca['user'][_0x2a0d('0x41')]({'plain':!![]});if(!_0x460527)throw new Error(_0x2a0d('0x42'));if(_0x460527[_0x2a0d('0x43')]==='user'){var _0x2750bb=_0x4c238f[_0x2a0d('0x41')]({'plain':!![]});var _0x2dcf0c=_0x2a0d('0x44');return db['UserProfileSection']['find']({'where':{'name':_0x2dcf0c,'userProfileId':_0x460527[_0x2a0d('0x45')]},'raw':!![]})[_0x2a0d('0x1f')](function(_0x2e4854){if(_0x2e4854&&_0x2e4854['autoAssociation']===0x0){return db[_0x2a0d('0x20')]['create']({'name':_0x2750bb[_0x2a0d('0x23')],'resourceId':_0x2750bb['id'],'type':_0x2e4854['name'],'sectionId':_0x2e4854['id']},{})[_0x2a0d('0x1f')](function(){return _0x4c238f;});}else{return _0x4c238f;}})['catch'](function(_0x34c5a6){logger[_0x2a0d('0x21')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x34c5a6);throw _0x34c5a6;});}return _0x4c238f;})[_0x2a0d('0x1f')](respondWithResult(_0x2ab6c4,0xc9))[_0x2a0d('0x3b')](handleError(_0x2ab6c4,null));};exports[_0x2a0d('0x46')]=function(_0x111895,_0x2d03b5){if(_0x111895[_0x2a0d('0x47')]['id']){delete _0x111895[_0x2a0d('0x47')]['id'];}return db[_0x2a0d('0x26')]['find']({'where':{'id':_0x111895[_0x2a0d('0x3d')]['id']}})[_0x2a0d('0x1f')](handleEntityNotFound(_0x2d03b5,null))[_0x2a0d('0x1f')](saveUpdates(_0x111895['body'],null))[_0x2a0d('0x1f')](respondWithResult(_0x2d03b5,null))[_0x2a0d('0x3b')](handleError(_0x2d03b5,null));};exports[_0x2a0d('0x1e')]=function(_0x35acdf,_0x336847){return db[_0x2a0d('0x26')][_0x2a0d('0x3f')]({'where':{'id':_0x35acdf[_0x2a0d('0x3d')]['id']}})[_0x2a0d('0x1f')](handleEntityNotFound(_0x336847,null))[_0x2a0d('0x1f')](removeEntity(_0x336847,null))[_0x2a0d('0x3b')](handleError(_0x336847,null));};exports[_0x2a0d('0x48')]=function(_0x5018c0,_0x2d2e83,_0xe1150b){var _0x268bce=require(_0x2a0d('0x49'));return db[_0x2a0d('0x26')][_0x2a0d('0x3f')]({'where':{'id':_0x5018c0[_0x2a0d('0x3d')]['id']},'raw':!![]})['then'](handleEntityNotFound(_0x2d2e83,null))[_0x2a0d('0x1f')](function(){_0x268bce[_0x2a0d('0x48')](_0x5018c0[_0x2a0d('0x3d')]['id']);})[_0x2a0d('0x1f')](respondWithStatusCode(_0x2d2e83,null))[_0x2a0d('0x3b')](handleError(_0x2d2e83,null));};