Built motion from commit da24aabd.|2.6.20
[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 _0x6c8e=['lodash','squel','crypto','jsforce','desk.js','to-csv','ioredis','../../components/parsers/qs','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','sendStatus','status','json','offset','limit','count','set','Content-Range','apply','reject','then','destroy','get','Scheduler','end','error','stack','send','index','map','Schedule','rawAttributes','type','key','name','query','keys','filters','intersection','model','fields','attributes','length','nolimit','sort','where','pick','filter','merge','includeAll','include','findAll','rows','catch','params','options','find','create','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','UserProfileResource','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','body','run','../../config/schedule','eml-format','zip-dir','fast-json-patch','request-promise','moment','util','path','sox','ejs','fs-extra'];(function(_0x139a3c,_0x4fc883){var _0x2b375b=function(_0x525dbf){while(--_0x525dbf){_0x139a3c['push'](_0x139a3c['shift']());}};_0x2b375b(++_0x4fc883);}(_0x6c8e,0x190));var _0xe6c8=function(_0x52f61,_0x11d7b2){_0x52f61=_0x52f61-0x0;var _0x4afda6=_0x6c8e[_0x52f61];return _0x4afda6;};'use strict';var emlformat=require(_0xe6c8('0x0'));var rimraf=require('rimraf');var zipdir=require(_0xe6c8('0x1'));var jsonpatch=require(_0xe6c8('0x2'));var rp=require(_0xe6c8('0x3'));var moment=require(_0xe6c8('0x4'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0xe6c8('0x5'));var path=require(_0xe6c8('0x6'));var sox=require(_0xe6c8('0x7'));var csv=require('to-csv');var ejs=require(_0xe6c8('0x8'));var fs=require('fs');var fs_extra=require(_0xe6c8('0x9'));var _=require(_0xe6c8('0xa'));var squel=require(_0xe6c8('0xb'));var crypto=require(_0xe6c8('0xc'));var jsforce=require(_0xe6c8('0xd'));var deskjs=require(_0xe6c8('0xe'));var toCsv=require(_0xe6c8('0xf'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0xe6c8('0x10'));var authService=require('../../components/auth/service');var qs=require(_0xe6c8('0x11'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xe6c8('0x12'));var logger=require('../../config/logger')(_0xe6c8('0x13'));var utils=require(_0xe6c8('0x14'));var config=require(_0xe6c8('0x15'));var licenseUtil=require(_0xe6c8('0x16'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0xb1d630,_0x5d02db){_0x5d02db=_0x5d02db||0xcc;return function(_0x5f3fc2){if(_0x5f3fc2){return _0xb1d630[_0xe6c8('0x17')](_0x5d02db);}return _0xb1d630[_0xe6c8('0x18')](_0x5d02db)['end']();};}function respondWithResult(_0x5672e7,_0x521d4d){_0x521d4d=_0x521d4d||0xc8;return function(_0x48c48b){if(_0x48c48b){return _0x5672e7[_0xe6c8('0x18')](_0x521d4d)[_0xe6c8('0x19')](_0x48c48b);}};}function respondWithFilteredResult(_0x2d38cb,_0x28f977){return function(_0x141e61){if(_0x141e61){var _0x1c5793=typeof _0x28f977[_0xe6c8('0x1a')]==='undefined'&&typeof _0x28f977[_0xe6c8('0x1b')]==='undefined';var _0x487c15=_0x141e61[_0xe6c8('0x1c')];var _0x468783=_0x1c5793?0x0:_0x28f977[_0xe6c8('0x1a')];var _0x3ee1f7=_0x1c5793?_0x141e61[_0xe6c8('0x1c')]:_0x28f977['offset']+_0x28f977[_0xe6c8('0x1b')];var _0x83a665;if(_0x3ee1f7>=_0x487c15){_0x3ee1f7=_0x487c15;_0x83a665=0xc8;}else{_0x83a665=0xce;}_0x2d38cb[_0xe6c8('0x18')](_0x83a665);return _0x2d38cb[_0xe6c8('0x1d')](_0xe6c8('0x1e'),_0x468783+'-'+_0x3ee1f7+'/'+_0x487c15)['json'](_0x141e61);}return null;};}function patchUpdates(_0x5bb572){return function(_0x2550fd){try{jsonpatch[_0xe6c8('0x1f')](_0x2550fd,_0x5bb572,!![]);}catch(_0x539a28){return BPromise[_0xe6c8('0x20')](_0x539a28);}return _0x2550fd['save']();};}function saveUpdates(_0x500d3b,_0x4221c7){return function(_0x2e6de2){if(_0x2e6de2){return _0x2e6de2['update'](_0x500d3b)[_0xe6c8('0x21')](function(_0x647771){return _0x647771;});}return null;};}function removeEntity(_0xa559ed,_0x10fe1c){return function(_0x1ad634){if(_0x1ad634){return _0x1ad634[_0xe6c8('0x22')]()['then'](function(){var _0x493eb2=_0x1ad634[_0xe6c8('0x23')]({'plain':!![]});var _0x3f7aac=_0xe6c8('0x24');return db['UserProfileResource'][_0xe6c8('0x22')]({'where':{'type':_0x3f7aac,'resourceId':_0x493eb2['id']}})['then'](function(){return _0x1ad634;});})['then'](function(){_0xa559ed[_0xe6c8('0x18')](0xcc)[_0xe6c8('0x25')]();});}};}function handleEntityNotFound(_0x1c82a9,_0x221093){return function(_0x572554){if(!_0x572554){_0x1c82a9[_0xe6c8('0x17')](0x194);}return _0x572554;};}function handleError(_0x58e056,_0x21df6e){_0x21df6e=_0x21df6e||0x1f4;return function(_0x746e00){logger[_0xe6c8('0x26')](_0x746e00[_0xe6c8('0x27')]);if(_0x746e00['name']){delete _0x746e00['name'];}_0x58e056[_0xe6c8('0x18')](_0x21df6e)[_0xe6c8('0x28')](_0x746e00);};}exports[_0xe6c8('0x29')]=function(_0x35a5d7,_0xa8af9f){var _0x4e82c1={},_0x4e4a43={},_0x53b02b={'count':0x0,'rows':[]};var _0x45aa16=_[_0xe6c8('0x2a')](db[_0xe6c8('0x2b')][_0xe6c8('0x2c')],function(_0x9c58b2){return{'name':_0x9c58b2['fieldName'],'type':_0x9c58b2[_0xe6c8('0x2d')][_0xe6c8('0x2e')]};});_0x4e4a43['model']=_[_0xe6c8('0x2a')](_0x45aa16,_0xe6c8('0x2f'));_0x4e4a43[_0xe6c8('0x30')]=_[_0xe6c8('0x31')](_0x35a5d7[_0xe6c8('0x30')]);_0x4e4a43[_0xe6c8('0x32')]=_[_0xe6c8('0x33')](_0x4e4a43[_0xe6c8('0x34')],_0x4e4a43[_0xe6c8('0x30')]);_0x4e82c1['attributes']=_[_0xe6c8('0x33')](_0x4e4a43['model'],qs[_0xe6c8('0x35')](_0x35a5d7[_0xe6c8('0x30')]['fields']));_0x4e82c1[_0xe6c8('0x36')]=_0x4e82c1[_0xe6c8('0x36')][_0xe6c8('0x37')]?_0x4e82c1[_0xe6c8('0x36')]:_0x4e4a43[_0xe6c8('0x34')];if(!_0x35a5d7[_0xe6c8('0x30')]['hasOwnProperty'](_0xe6c8('0x38'))){_0x4e82c1['limit']=qs[_0xe6c8('0x1b')](_0x35a5d7['query'][_0xe6c8('0x1b')]);_0x4e82c1['offset']=qs['offset'](_0x35a5d7['query'][_0xe6c8('0x1a')]);}_0x4e82c1['order']=qs[_0xe6c8('0x39')](_0x35a5d7['query'][_0xe6c8('0x39')]);_0x4e82c1[_0xe6c8('0x3a')]=qs[_0xe6c8('0x32')](_[_0xe6c8('0x3b')](_0x35a5d7[_0xe6c8('0x30')],_0x4e4a43['filters']),_0x45aa16);if(_0x35a5d7[_0xe6c8('0x30')][_0xe6c8('0x3c')]){_0x4e82c1['where']=_['merge'](_0x4e82c1[_0xe6c8('0x3a')],{'$or':_['map'](_0x45aa16,function(_0x3758d4){if(_0x3758d4[_0xe6c8('0x2d')]!=='VIRTUAL'){var _0x1a42ab={};_0x1a42ab[_0x3758d4[_0xe6c8('0x2f')]]={'$like':'%'+_0x35a5d7[_0xe6c8('0x30')][_0xe6c8('0x3c')]+'%'};return _0x1a42ab;}})});}_0x4e82c1=_[_0xe6c8('0x3d')]({},_0x4e82c1,_0x35a5d7['options']);var _0x21755e={'where':_0x4e82c1[_0xe6c8('0x3a')]};return db[_0xe6c8('0x2b')]['count'](_0x21755e)[_0xe6c8('0x21')](function(_0x50504b){_0x53b02b[_0xe6c8('0x1c')]=_0x50504b;if(_0x35a5d7[_0xe6c8('0x30')][_0xe6c8('0x3e')]){_0x4e82c1[_0xe6c8('0x3f')]=[{'all':!![]}];}return db[_0xe6c8('0x2b')][_0xe6c8('0x40')](_0x4e82c1);})[_0xe6c8('0x21')](function(_0x27f2fa){_0x53b02b[_0xe6c8('0x41')]=_0x27f2fa;return _0x53b02b;})[_0xe6c8('0x21')](respondWithFilteredResult(_0xa8af9f,_0x4e82c1))[_0xe6c8('0x42')](handleError(_0xa8af9f,null));};exports['show']=function(_0x5c5a12,_0x155154){var _0x19af4c={'raw':![],'where':{'id':_0x5c5a12[_0xe6c8('0x43')]['id']}},_0x5cb58a={};_0x5cb58a['model']=_[_0xe6c8('0x31')](db[_0xe6c8('0x2b')][_0xe6c8('0x2c')]);_0x5cb58a[_0xe6c8('0x30')]=_[_0xe6c8('0x31')](_0x5c5a12[_0xe6c8('0x30')]);_0x5cb58a[_0xe6c8('0x32')]=_[_0xe6c8('0x33')](_0x5cb58a[_0xe6c8('0x34')],_0x5cb58a[_0xe6c8('0x30')]);_0x19af4c[_0xe6c8('0x36')]=_[_0xe6c8('0x33')](_0x5cb58a[_0xe6c8('0x34')],qs[_0xe6c8('0x35')](_0x5c5a12[_0xe6c8('0x30')]['fields']));_0x19af4c[_0xe6c8('0x36')]=_0x19af4c[_0xe6c8('0x36')][_0xe6c8('0x37')]?_0x19af4c['attributes']:_0x5cb58a[_0xe6c8('0x34')];if(_0x5c5a12[_0xe6c8('0x30')][_0xe6c8('0x3e')]){_0x19af4c[_0xe6c8('0x3f')]=[{'all':!![]}];}_0x19af4c=_[_0xe6c8('0x3d')]({},_0x19af4c,_0x5c5a12[_0xe6c8('0x44')]);return db['Schedule'][_0xe6c8('0x45')](_0x19af4c)[_0xe6c8('0x21')](handleEntityNotFound(_0x155154,null))[_0xe6c8('0x21')](respondWithResult(_0x155154,null))['catch'](handleError(_0x155154,null));};exports[_0xe6c8('0x46')]=function(_0x3fc610,_0x35b346){return db['Schedule'][_0xe6c8('0x46')](_0x3fc610['body'],{})['then'](function(_0x989374){var _0x355ded=_0x3fc610[_0xe6c8('0x47')][_0xe6c8('0x23')]({'plain':!![]});if(!_0x355ded)throw new Error(_0xe6c8('0x48'));if(_0x355ded[_0xe6c8('0x49')]===_0xe6c8('0x47')){var _0x33bae1=_0x989374[_0xe6c8('0x23')]({'plain':!![]});var _0x1c17c5=_0xe6c8('0x24');return db[_0xe6c8('0x4a')][_0xe6c8('0x45')]({'where':{'name':_0x1c17c5,'userProfileId':_0x355ded[_0xe6c8('0x4b')]},'raw':!![]})[_0xe6c8('0x21')](function(_0x5d2954){if(_0x5d2954&&_0x5d2954['autoAssociation']===0x0){return db[_0xe6c8('0x4c')][_0xe6c8('0x46')]({'name':_0x33bae1[_0xe6c8('0x2f')],'resourceId':_0x33bae1['id'],'type':_0x5d2954['name'],'sectionId':_0x5d2954['id']},{})[_0xe6c8('0x21')](function(){return _0x989374;});}else{return _0x989374;}})[_0xe6c8('0x42')](function(_0x2a8084){logger[_0xe6c8('0x26')](_0xe6c8('0x4d'),_0x2a8084);throw _0x2a8084;});}return _0x989374;})['then'](respondWithResult(_0x35b346,0xc9))['catch'](handleError(_0x35b346,null));};exports[_0xe6c8('0x4e')]=function(_0x452141,_0x6facc3){if(_0x452141[_0xe6c8('0x4f')]['id']){delete _0x452141[_0xe6c8('0x4f')]['id'];}return db['Schedule'][_0xe6c8('0x45')]({'where':{'id':_0x452141[_0xe6c8('0x43')]['id']}})[_0xe6c8('0x21')](handleEntityNotFound(_0x6facc3,null))['then'](saveUpdates(_0x452141[_0xe6c8('0x4f')],null))['then'](respondWithResult(_0x6facc3,null))[_0xe6c8('0x42')](handleError(_0x6facc3,null));};exports[_0xe6c8('0x22')]=function(_0x2e1054,_0x25f535){return db[_0xe6c8('0x2b')][_0xe6c8('0x45')]({'where':{'id':_0x2e1054[_0xe6c8('0x43')]['id']}})['then'](handleEntityNotFound(_0x25f535,null))[_0xe6c8('0x21')](removeEntity(_0x25f535,null))[_0xe6c8('0x42')](handleError(_0x25f535,null));};exports[_0xe6c8('0x50')]=function(_0x4f1230,_0x590044,_0xa1e8fb){var _0x1374fd=require(_0xe6c8('0x51'));return db[_0xe6c8('0x2b')][_0xe6c8('0x45')]({'where':{'id':_0x4f1230[_0xe6c8('0x43')]['id']},'raw':!![]})[_0xe6c8('0x21')](handleEntityNotFound(_0x590044,null))[_0xe6c8('0x21')](function(){_0x1374fd[_0xe6c8('0x50')](_0x4f1230[_0xe6c8('0x43')]['id']);})[_0xe6c8('0x21')](respondWithStatusCode(_0x590044,null))[_0xe6c8('0x42')](handleError(_0x590044,null));};