da673b02fd16867fec7cabc9590b8cbc066f3859
[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 _0x08dd=['length','hasOwnProperty','nolimit','sort','where','filters','pick','filter','merge','VIRTUAL','options','includeAll','findAll','catch','rawAttributes','include','find','create','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','autoAssociation','body','run','params','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','sox','to-csv','ejs','fs-extra','squel','crypto','jsforce','desk.js','querystring','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','sendStatus','status','end','undefined','offset','count','limit','set','Content-Range','apply','save','update','destroy','then','get','Scheduler','UserProfileResource','error','stack','name','send','map','Schedule','type','key','model','query','keys','intersection','fields','attributes'];(function(_0x3f36f9,_0x4dd9ef){var _0x26c06b=function(_0x1ac062){while(--_0x1ac062){_0x3f36f9['push'](_0x3f36f9['shift']());}};_0x26c06b(++_0x4dd9ef);}(_0x08dd,0x106));var _0xd08d=function(_0xb1ef48,_0x30273d){_0xb1ef48=_0xb1ef48-0x0;var _0x5e4137=_0x08dd[_0xb1ef48];return _0x5e4137;};'use strict';var emlformat=require(_0xd08d('0x0'));var rimraf=require(_0xd08d('0x1'));var zipdir=require(_0xd08d('0x2'));var jsonpatch=require(_0xd08d('0x3'));var rp=require(_0xd08d('0x4'));var moment=require(_0xd08d('0x5'));var BPromise=require(_0xd08d('0x6'));var Mustache=require('mustache');var util=require('util');var path=require('path');var sox=require(_0xd08d('0x7'));var csv=require(_0xd08d('0x8'));var ejs=require(_0xd08d('0x9'));var fs=require('fs');var fs_extra=require(_0xd08d('0xa'));var _=require('lodash');var squel=require(_0xd08d('0xb'));var crypto=require(_0xd08d('0xc'));var jsforce=require(_0xd08d('0xd'));var deskjs=require(_0xd08d('0xe'));var toCsv=require(_0xd08d('0x8'));var querystring=require(_0xd08d('0xf'));var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0xd08d('0x10'));var qs=require(_0xd08d('0x11'));var as=require(_0xd08d('0x12'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xd08d('0x13'))(_0xd08d('0x14'));var utils=require(_0xd08d('0x15'));var config=require(_0xd08d('0x16'));var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x150a99,_0x5b59a0){_0x5b59a0=_0x5b59a0||0xcc;return function(_0x13e27d){if(_0x13e27d){return _0x150a99[_0xd08d('0x17')](_0x5b59a0);}return _0x150a99[_0xd08d('0x18')](_0x5b59a0)[_0xd08d('0x19')]();};}function respondWithResult(_0x54b0c8,_0x4027b0){_0x4027b0=_0x4027b0||0xc8;return function(_0x482602){if(_0x482602){return _0x54b0c8[_0xd08d('0x18')](_0x4027b0)['json'](_0x482602);}};}function respondWithFilteredResult(_0x4c468b,_0x534c27){return function(_0x57a32e){if(_0x57a32e){var _0x56f2d7=typeof _0x534c27['offset']===_0xd08d('0x1a')&&typeof _0x534c27['limit']==='undefined';var _0x32c485=_0x57a32e['count'];var _0x4e6bf3=_0x56f2d7?0x0:_0x534c27[_0xd08d('0x1b')];var _0x4139a3=_0x56f2d7?_0x57a32e[_0xd08d('0x1c')]:_0x534c27[_0xd08d('0x1b')]+_0x534c27[_0xd08d('0x1d')];var _0x92f5f9;if(_0x4139a3>=_0x32c485){_0x4139a3=_0x32c485;_0x92f5f9=0xc8;}else{_0x92f5f9=0xce;}_0x4c468b[_0xd08d('0x18')](_0x92f5f9);return _0x4c468b[_0xd08d('0x1e')](_0xd08d('0x1f'),_0x4e6bf3+'-'+_0x4139a3+'/'+_0x32c485)['json'](_0x57a32e);}return null;};}function patchUpdates(_0x521085){return function(_0x30605d){try{jsonpatch[_0xd08d('0x20')](_0x30605d,_0x521085,!![]);}catch(_0x2a1547){return BPromise['reject'](_0x2a1547);}return _0x30605d[_0xd08d('0x21')]();};}function saveUpdates(_0x3a6eb7,_0x4d089){return function(_0x5d81f9){if(_0x5d81f9){return _0x5d81f9[_0xd08d('0x22')](_0x3a6eb7)['then'](function(_0x4cbb0c){return _0x4cbb0c;});}return null;};}function removeEntity(_0x63a5db,_0x1f9bdf){return function(_0x46bfdd){if(_0x46bfdd){return _0x46bfdd[_0xd08d('0x23')]()[_0xd08d('0x24')](function(){var _0x3e741d=_0x46bfdd[_0xd08d('0x25')]({'plain':!![]});var _0x4985ff=_0xd08d('0x26');return db[_0xd08d('0x27')][_0xd08d('0x23')]({'where':{'type':_0x4985ff,'resourceId':_0x3e741d['id']}})['then'](function(){return _0x46bfdd;});})[_0xd08d('0x24')](function(){_0x63a5db[_0xd08d('0x18')](0xcc)[_0xd08d('0x19')]();});}};}function handleEntityNotFound(_0x58da7b,_0x44d38c){return function(_0x3ddb34){if(!_0x3ddb34){_0x58da7b['sendStatus'](0x194);}return _0x3ddb34;};}function handleError(_0x5f14c5,_0x1e4db6){_0x1e4db6=_0x1e4db6||0x1f4;return function(_0x1f02b4){logger[_0xd08d('0x28')](_0x1f02b4[_0xd08d('0x29')]);if(_0x1f02b4[_0xd08d('0x2a')]){delete _0x1f02b4[_0xd08d('0x2a')];}_0x5f14c5[_0xd08d('0x18')](_0x1e4db6)[_0xd08d('0x2b')](_0x1f02b4);};}exports['index']=function(_0x5ee450,_0x11d48d){var _0x400e2e={},_0x22b86c={},_0x5cd6c9={'count':0x0,'rows':[]};var _0x210b49=_[_0xd08d('0x2c')](db[_0xd08d('0x2d')]['rawAttributes'],function(_0x30e690){return{'name':_0x30e690['fieldName'],'type':_0x30e690[_0xd08d('0x2e')][_0xd08d('0x2f')]};});_0x22b86c[_0xd08d('0x30')]=_['map'](_0x210b49,_0xd08d('0x2a'));_0x22b86c[_0xd08d('0x31')]=_[_0xd08d('0x32')](_0x5ee450[_0xd08d('0x31')]);_0x22b86c['filters']=_['intersection'](_0x22b86c[_0xd08d('0x30')],_0x22b86c['query']);_0x400e2e['attributes']=_[_0xd08d('0x33')](_0x22b86c[_0xd08d('0x30')],qs[_0xd08d('0x34')](_0x5ee450['query'][_0xd08d('0x34')]));_0x400e2e[_0xd08d('0x35')]=_0x400e2e[_0xd08d('0x35')][_0xd08d('0x36')]?_0x400e2e['attributes']:_0x22b86c[_0xd08d('0x30')];if(!_0x5ee450[_0xd08d('0x31')][_0xd08d('0x37')](_0xd08d('0x38'))){_0x400e2e[_0xd08d('0x1d')]=qs[_0xd08d('0x1d')](_0x5ee450[_0xd08d('0x31')][_0xd08d('0x1d')]);_0x400e2e[_0xd08d('0x1b')]=qs[_0xd08d('0x1b')](_0x5ee450[_0xd08d('0x31')]['offset']);}_0x400e2e['order']=qs[_0xd08d('0x39')](_0x5ee450['query']['sort']);_0x400e2e[_0xd08d('0x3a')]=qs[_0xd08d('0x3b')](_[_0xd08d('0x3c')](_0x5ee450[_0xd08d('0x31')],_0x22b86c[_0xd08d('0x3b')]),_0x210b49);if(_0x5ee450['query'][_0xd08d('0x3d')]){_0x400e2e[_0xd08d('0x3a')]=_[_0xd08d('0x3e')](_0x400e2e[_0xd08d('0x3a')],{'$or':_[_0xd08d('0x2c')](_0x210b49,function(_0x39de38){if(_0x39de38[_0xd08d('0x2e')]!==_0xd08d('0x3f')){var _0x33c3e5={};_0x33c3e5[_0x39de38[_0xd08d('0x2a')]]={'$like':'%'+_0x5ee450[_0xd08d('0x31')]['filter']+'%'};return _0x33c3e5;}})});}_0x400e2e=_[_0xd08d('0x3e')]({},_0x400e2e,_0x5ee450[_0xd08d('0x40')]);var _0x640630={'where':_0x400e2e[_0xd08d('0x3a')]};return db[_0xd08d('0x2d')][_0xd08d('0x1c')](_0x640630)['then'](function(_0x2fdce0){_0x5cd6c9['count']=_0x2fdce0;if(_0x5ee450[_0xd08d('0x31')][_0xd08d('0x41')]){_0x400e2e['include']=[{'all':!![]}];}return db[_0xd08d('0x2d')][_0xd08d('0x42')](_0x400e2e);})[_0xd08d('0x24')](function(_0x1b7c41){_0x5cd6c9['rows']=_0x1b7c41;return _0x5cd6c9;})[_0xd08d('0x24')](respondWithFilteredResult(_0x11d48d,_0x400e2e))[_0xd08d('0x43')](handleError(_0x11d48d,null));};exports['show']=function(_0x4f9455,_0x864102){var _0x49ffe5={'raw':![],'where':{'id':_0x4f9455['params']['id']}},_0x847541={};_0x847541[_0xd08d('0x30')]=_['keys'](db[_0xd08d('0x2d')][_0xd08d('0x44')]);_0x847541['query']=_[_0xd08d('0x32')](_0x4f9455[_0xd08d('0x31')]);_0x847541[_0xd08d('0x3b')]=_[_0xd08d('0x33')](_0x847541[_0xd08d('0x30')],_0x847541[_0xd08d('0x31')]);_0x49ffe5[_0xd08d('0x35')]=_[_0xd08d('0x33')](_0x847541[_0xd08d('0x30')],qs[_0xd08d('0x34')](_0x4f9455['query']['fields']));_0x49ffe5[_0xd08d('0x35')]=_0x49ffe5['attributes'][_0xd08d('0x36')]?_0x49ffe5[_0xd08d('0x35')]:_0x847541[_0xd08d('0x30')];if(_0x4f9455['query'][_0xd08d('0x41')]){_0x49ffe5[_0xd08d('0x45')]=[{'all':!![]}];}_0x49ffe5=_[_0xd08d('0x3e')]({},_0x49ffe5,_0x4f9455['options']);return db[_0xd08d('0x2d')][_0xd08d('0x46')](_0x49ffe5)[_0xd08d('0x24')](handleEntityNotFound(_0x864102,null))[_0xd08d('0x24')](respondWithResult(_0x864102,null))['catch'](handleError(_0x864102,null));};exports[_0xd08d('0x47')]=function(_0x43fec8,_0x48fce3){return db[_0xd08d('0x2d')][_0xd08d('0x47')](_0x43fec8['body'],{})[_0xd08d('0x24')](function(_0x34d750){var _0x5e5f93=_0x43fec8[_0xd08d('0x48')]['get']({'plain':!![]});if(!_0x5e5f93)throw new Error(_0xd08d('0x49'));if(_0x5e5f93[_0xd08d('0x4a')]==='user'){var _0x1a50f0=_0x34d750['get']({'plain':!![]});var _0x6d3d4b='Scheduler';return db['UserProfileSection'][_0xd08d('0x46')]({'where':{'name':_0x6d3d4b,'userProfileId':_0x5e5f93['userProfileId']},'raw':!![]})['then'](function(_0x250d46){if(_0x250d46&&_0x250d46[_0xd08d('0x4b')]===0x0){return db[_0xd08d('0x27')][_0xd08d('0x47')]({'name':_0x1a50f0[_0xd08d('0x2a')],'resourceId':_0x1a50f0['id'],'type':_0x250d46[_0xd08d('0x2a')],'sectionId':_0x250d46['id']},{})['then'](function(){return _0x34d750;});}else{return _0x34d750;}})[_0xd08d('0x43')](function(_0x2043e7){logger[_0xd08d('0x28')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x2043e7);throw _0x2043e7;});}return _0x34d750;})['then'](respondWithResult(_0x48fce3,0xc9))[_0xd08d('0x43')](handleError(_0x48fce3,null));};exports['update']=function(_0x49b317,_0x4df02b){if(_0x49b317[_0xd08d('0x4c')]['id']){delete _0x49b317[_0xd08d('0x4c')]['id'];}return db['Schedule'][_0xd08d('0x46')]({'where':{'id':_0x49b317['params']['id']}})['then'](handleEntityNotFound(_0x4df02b,null))[_0xd08d('0x24')](saveUpdates(_0x49b317[_0xd08d('0x4c')],null))[_0xd08d('0x24')](respondWithResult(_0x4df02b,null))[_0xd08d('0x43')](handleError(_0x4df02b,null));};exports[_0xd08d('0x23')]=function(_0x5444b1,_0x5c1784){return db['Schedule'][_0xd08d('0x46')]({'where':{'id':_0x5444b1['params']['id']}})['then'](handleEntityNotFound(_0x5c1784,null))[_0xd08d('0x24')](removeEntity(_0x5c1784,null))['catch'](handleError(_0x5c1784,null));};exports[_0xd08d('0x4d')]=function(_0x1e0d38,_0x13702a,_0x51c35e){var _0xb326a9=require('../../config/schedule');return db[_0xd08d('0x2d')][_0xd08d('0x46')]({'where':{'id':_0x1e0d38[_0xd08d('0x4e')]['id']},'raw':!![]})['then'](handleEntityNotFound(_0x13702a,null))[_0xd08d('0x24')](function(){_0xb326a9['run'](_0x1e0d38[_0xd08d('0x4e')]['id']);})['then'](respondWithStatusCode(_0x13702a,null))[_0xd08d('0x43')](handleError(_0x13702a,null));};