Built motion from commit da617fac.|2.6.6
[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 _0x1bf0=['querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','end','status','json','offset','limit','undefined','count','set','apply','reject','save','then','destroy','get','Scheduler','sendStatus','error','stack','name','send','index','map','Schedule','rawAttributes','fieldName','type','model','query','keys','intersection','attributes','fields','hasOwnProperty','nolimit','order','sort','where','filters','pick','filter','merge','includeAll','include','rows','params','length','options','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','UserProfileResource','catch','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','run','../../config/schedule','eml-format','fast-json-patch','moment','bluebird','mustache','util','path','sox','to-csv','fs-extra','lodash','squel','crypto','desk.js'];(function(_0x3596e7,_0x976f09){var _0x46fa54=function(_0x55d7e2){while(--_0x55d7e2){_0x3596e7['push'](_0x3596e7['shift']());}};_0x46fa54(++_0x976f09);}(_0x1bf0,0x9a));var _0x01bf=function(_0x1580d3,_0x214bba){_0x1580d3=_0x1580d3-0x0;var _0x25d78b=_0x1bf0[_0x1580d3];return _0x25d78b;};'use strict';var emlformat=require(_0x01bf('0x0'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require(_0x01bf('0x1'));var rp=require('request-promise');var moment=require(_0x01bf('0x2'));var BPromise=require(_0x01bf('0x3'));var Mustache=require(_0x01bf('0x4'));var util=require(_0x01bf('0x5'));var path=require(_0x01bf('0x6'));var sox=require(_0x01bf('0x7'));var csv=require(_0x01bf('0x8'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x01bf('0x9'));var _=require(_0x01bf('0xa'));var squel=require(_0x01bf('0xb'));var crypto=require(_0x01bf('0xc'));var jsforce=require('jsforce');var deskjs=require(_0x01bf('0xd'));var toCsv=require(_0x01bf('0x8'));var querystring=require(_0x01bf('0xe'));var Papa=require(_0x01bf('0xf'));var Redis=require('ioredis');var authService=require(_0x01bf('0x10'));var qs=require(_0x01bf('0x11'));var as=require(_0x01bf('0x12'));var hardwareService=require(_0x01bf('0x13'));var logger=require('../../config/logger')(_0x01bf('0x14'));var utils=require(_0x01bf('0x15'));var config=require(_0x01bf('0x16'));var licenseUtil=require(_0x01bf('0x17'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x29f645,_0x455ad5){_0x455ad5=_0x455ad5||0xcc;return function(_0x4190e4){if(_0x4190e4){return _0x29f645['sendStatus'](_0x455ad5);}return _0x29f645['status'](_0x455ad5)[_0x01bf('0x18')]();};}function respondWithResult(_0x17d414,_0xe26762){_0xe26762=_0xe26762||0xc8;return function(_0x3a2dd9){if(_0x3a2dd9){return _0x17d414[_0x01bf('0x19')](_0xe26762)[_0x01bf('0x1a')](_0x3a2dd9);}};}function respondWithFilteredResult(_0x979a6,_0x1ca6ba){return function(_0x477079){if(_0x477079){var _0x18b602=typeof _0x1ca6ba[_0x01bf('0x1b')]==='undefined'&&typeof _0x1ca6ba[_0x01bf('0x1c')]===_0x01bf('0x1d');var _0x21d621=_0x477079[_0x01bf('0x1e')];var _0x5da70b=_0x18b602?0x0:_0x1ca6ba['offset'];var _0x403acc=_0x18b602?_0x477079[_0x01bf('0x1e')]:_0x1ca6ba[_0x01bf('0x1b')]+_0x1ca6ba[_0x01bf('0x1c')];var _0x1f3b0e;if(_0x403acc>=_0x21d621){_0x403acc=_0x21d621;_0x1f3b0e=0xc8;}else{_0x1f3b0e=0xce;}_0x979a6[_0x01bf('0x19')](_0x1f3b0e);return _0x979a6[_0x01bf('0x1f')]('Content-Range',_0x5da70b+'-'+_0x403acc+'/'+_0x21d621)[_0x01bf('0x1a')](_0x477079);}return null;};}function patchUpdates(_0x4c53ba){return function(_0x414312){try{jsonpatch[_0x01bf('0x20')](_0x414312,_0x4c53ba,!![]);}catch(_0x352658){return BPromise[_0x01bf('0x21')](_0x352658);}return _0x414312[_0x01bf('0x22')]();};}function saveUpdates(_0x539d15,_0x463565){return function(_0x26c6dd){if(_0x26c6dd){return _0x26c6dd['update'](_0x539d15)[_0x01bf('0x23')](function(_0x1dc900){return _0x1dc900;});}return null;};}function removeEntity(_0x5ec328,_0x570e7c){return function(_0x5d27bd){if(_0x5d27bd){return _0x5d27bd[_0x01bf('0x24')]()['then'](function(){var _0x3716cd=_0x5d27bd[_0x01bf('0x25')]({'plain':!![]});var _0x2968a6=_0x01bf('0x26');return db['UserProfileResource']['destroy']({'where':{'type':_0x2968a6,'resourceId':_0x3716cd['id']}})[_0x01bf('0x23')](function(){return _0x5d27bd;});})[_0x01bf('0x23')](function(){_0x5ec328[_0x01bf('0x19')](0xcc)[_0x01bf('0x18')]();});}};}function handleEntityNotFound(_0x158df8,_0x10c608){return function(_0x126f26){if(!_0x126f26){_0x158df8[_0x01bf('0x27')](0x194);}return _0x126f26;};}function handleError(_0x5049e1,_0x5c2b39){_0x5c2b39=_0x5c2b39||0x1f4;return function(_0x23a092){logger[_0x01bf('0x28')](_0x23a092[_0x01bf('0x29')]);if(_0x23a092[_0x01bf('0x2a')]){delete _0x23a092[_0x01bf('0x2a')];}_0x5049e1[_0x01bf('0x19')](_0x5c2b39)[_0x01bf('0x2b')](_0x23a092);};}exports[_0x01bf('0x2c')]=function(_0xe0f2d0,_0x44c3ba){var _0xbf2d2={},_0x3ef25a={},_0x2822dd={'count':0x0,'rows':[]};var _0x4dbef4=_[_0x01bf('0x2d')](db[_0x01bf('0x2e')][_0x01bf('0x2f')],function(_0x127974){return{'name':_0x127974[_0x01bf('0x30')],'type':_0x127974[_0x01bf('0x31')]['key']};});_0x3ef25a[_0x01bf('0x32')]=_[_0x01bf('0x2d')](_0x4dbef4,'name');_0x3ef25a[_0x01bf('0x33')]=_[_0x01bf('0x34')](_0xe0f2d0['query']);_0x3ef25a['filters']=_[_0x01bf('0x35')](_0x3ef25a[_0x01bf('0x32')],_0x3ef25a[_0x01bf('0x33')]);_0xbf2d2[_0x01bf('0x36')]=_[_0x01bf('0x35')](_0x3ef25a[_0x01bf('0x32')],qs[_0x01bf('0x37')](_0xe0f2d0[_0x01bf('0x33')][_0x01bf('0x37')]));_0xbf2d2[_0x01bf('0x36')]=_0xbf2d2[_0x01bf('0x36')]['length']?_0xbf2d2[_0x01bf('0x36')]:_0x3ef25a[_0x01bf('0x32')];if(!_0xe0f2d0[_0x01bf('0x33')][_0x01bf('0x38')](_0x01bf('0x39'))){_0xbf2d2['limit']=qs[_0x01bf('0x1c')](_0xe0f2d0['query']['limit']);_0xbf2d2[_0x01bf('0x1b')]=qs[_0x01bf('0x1b')](_0xe0f2d0[_0x01bf('0x33')][_0x01bf('0x1b')]);}_0xbf2d2[_0x01bf('0x3a')]=qs[_0x01bf('0x3b')](_0xe0f2d0[_0x01bf('0x33')]['sort']);_0xbf2d2[_0x01bf('0x3c')]=qs[_0x01bf('0x3d')](_[_0x01bf('0x3e')](_0xe0f2d0[_0x01bf('0x33')],_0x3ef25a[_0x01bf('0x3d')]),_0x4dbef4);if(_0xe0f2d0[_0x01bf('0x33')][_0x01bf('0x3f')]){_0xbf2d2['where']=_[_0x01bf('0x40')](_0xbf2d2[_0x01bf('0x3c')],{'$or':_['map'](_0x4dbef4,function(_0x2cea07){if(_0x2cea07[_0x01bf('0x31')]!=='VIRTUAL'){var _0x545280={};_0x545280[_0x2cea07[_0x01bf('0x2a')]]={'$like':'%'+_0xe0f2d0[_0x01bf('0x33')][_0x01bf('0x3f')]+'%'};return _0x545280;}})});}_0xbf2d2=_[_0x01bf('0x40')]({},_0xbf2d2,_0xe0f2d0['options']);var _0xcab316={'where':_0xbf2d2[_0x01bf('0x3c')]};return db[_0x01bf('0x2e')]['count'](_0xcab316)['then'](function(_0x1de7b6){_0x2822dd[_0x01bf('0x1e')]=_0x1de7b6;if(_0xe0f2d0['query'][_0x01bf('0x41')]){_0xbf2d2[_0x01bf('0x42')]=[{'all':!![]}];}return db[_0x01bf('0x2e')]['findAll'](_0xbf2d2);})['then'](function(_0x118b9b){_0x2822dd[_0x01bf('0x43')]=_0x118b9b;return _0x2822dd;})[_0x01bf('0x23')](respondWithFilteredResult(_0x44c3ba,_0xbf2d2))['catch'](handleError(_0x44c3ba,null));};exports['show']=function(_0x518903,_0x258e2f){var _0x5a7f28={'raw':![],'where':{'id':_0x518903[_0x01bf('0x44')]['id']}},_0x2829e3={};_0x2829e3[_0x01bf('0x32')]=_[_0x01bf('0x34')](db[_0x01bf('0x2e')]['rawAttributes']);_0x2829e3[_0x01bf('0x33')]=_[_0x01bf('0x34')](_0x518903[_0x01bf('0x33')]);_0x2829e3['filters']=_[_0x01bf('0x35')](_0x2829e3[_0x01bf('0x32')],_0x2829e3[_0x01bf('0x33')]);_0x5a7f28['attributes']=_['intersection'](_0x2829e3[_0x01bf('0x32')],qs[_0x01bf('0x37')](_0x518903[_0x01bf('0x33')][_0x01bf('0x37')]));_0x5a7f28[_0x01bf('0x36')]=_0x5a7f28[_0x01bf('0x36')][_0x01bf('0x45')]?_0x5a7f28[_0x01bf('0x36')]:_0x2829e3[_0x01bf('0x32')];if(_0x518903[_0x01bf('0x33')][_0x01bf('0x41')]){_0x5a7f28[_0x01bf('0x42')]=[{'all':!![]}];}_0x5a7f28=_[_0x01bf('0x40')]({},_0x5a7f28,_0x518903[_0x01bf('0x46')]);return db[_0x01bf('0x2e')][_0x01bf('0x47')](_0x5a7f28)['then'](handleEntityNotFound(_0x258e2f,null))[_0x01bf('0x23')](respondWithResult(_0x258e2f,null))['catch'](handleError(_0x258e2f,null));};exports[_0x01bf('0x48')]=function(_0x5d36c2,_0x337e9e){return db[_0x01bf('0x2e')][_0x01bf('0x48')](_0x5d36c2[_0x01bf('0x49')],{})['then'](function(_0x180510){var _0x5a70c1=_0x5d36c2[_0x01bf('0x4a')][_0x01bf('0x25')]({'plain':!![]});if(!_0x5a70c1)throw new Error(_0x01bf('0x4b'));if(_0x5a70c1[_0x01bf('0x4c')]===_0x01bf('0x4a')){var _0x8b35e6=_0x180510[_0x01bf('0x25')]({'plain':!![]});var _0x53405b=_0x01bf('0x26');return db[_0x01bf('0x4d')][_0x01bf('0x47')]({'where':{'name':_0x53405b,'userProfileId':_0x5a70c1['userProfileId']},'raw':!![]})[_0x01bf('0x23')](function(_0x3fb65f){if(_0x3fb65f&&_0x3fb65f['autoAssociation']===0x0){return db[_0x01bf('0x4e')]['create']({'name':_0x8b35e6['name'],'resourceId':_0x8b35e6['id'],'type':_0x3fb65f[_0x01bf('0x2a')],'sectionId':_0x3fb65f['id']},{})['then'](function(){return _0x180510;});}else{return _0x180510;}})[_0x01bf('0x4f')](function(_0x46f753){logger[_0x01bf('0x28')](_0x01bf('0x50'),_0x46f753);throw _0x46f753;});}return _0x180510;})['then'](respondWithResult(_0x337e9e,0xc9))['catch'](handleError(_0x337e9e,null));};exports[_0x01bf('0x51')]=function(_0x435c07,_0x32c8f3){if(_0x435c07[_0x01bf('0x49')]['id']){delete _0x435c07[_0x01bf('0x49')]['id'];}return db[_0x01bf('0x2e')][_0x01bf('0x47')]({'where':{'id':_0x435c07[_0x01bf('0x44')]['id']}})[_0x01bf('0x23')](handleEntityNotFound(_0x32c8f3,null))[_0x01bf('0x23')](saveUpdates(_0x435c07[_0x01bf('0x49')],null))['then'](respondWithResult(_0x32c8f3,null))[_0x01bf('0x4f')](handleError(_0x32c8f3,null));};exports[_0x01bf('0x24')]=function(_0x418a3c,_0x5b73ed){return db[_0x01bf('0x2e')][_0x01bf('0x47')]({'where':{'id':_0x418a3c[_0x01bf('0x44')]['id']}})[_0x01bf('0x23')](handleEntityNotFound(_0x5b73ed,null))['then'](removeEntity(_0x5b73ed,null))[_0x01bf('0x4f')](handleError(_0x5b73ed,null));};exports[_0x01bf('0x52')]=function(_0x3523f1,_0x18ae7b,_0x3e31e2){var _0x2972d1=require(_0x01bf('0x53'));return db[_0x01bf('0x2e')][_0x01bf('0x47')]({'where':{'id':_0x3523f1['params']['id']},'raw':!![]})['then'](handleEntityNotFound(_0x18ae7b,null))[_0x01bf('0x23')](function(){_0x2972d1[_0x01bf('0x52')](_0x3523f1[_0x01bf('0x44')]['id']);})['then'](respondWithStatusCode(_0x18ae7b,null))[_0x01bf('0x4f')](handleError(_0x18ae7b,null));};