Built motion from commit b0a9a629.|2.6.33
[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 _0xbc10=['lodash','crypto','jsforce','desk.js','to-csv','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','api','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','end','status','json','offset','undefined','count','limit','Content-Range','apply','save','update','then','UserProfileResource','destroy','error','stack','name','send','index','Schedule','rawAttributes','fieldName','key','map','query','keys','filters','intersection','attributes','model','fields','length','nolimit','order','sort','where','pick','filter','merge','type','options','includeAll','include','findAll','rows','catch','show','params','find','body','user','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','userProfileId','autoAssociation','run','eml-format','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','ejs','fs-extra'];(function(_0x6d02f6,_0x21e16f){var _0x372791=function(_0x102a2a){while(--_0x102a2a){_0x6d02f6['push'](_0x6d02f6['shift']());}};_0x372791(++_0x21e16f);}(_0xbc10,0x13a));var _0x0bc1=function(_0x5e3b04,_0xbb6795){_0x5e3b04=_0x5e3b04-0x0;var _0x1fc44d=_0xbc10[_0x5e3b04];return _0x1fc44d;};'use strict';var emlformat=require(_0x0bc1('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x0bc1('0x1'));var jsonpatch=require(_0x0bc1('0x2'));var rp=require(_0x0bc1('0x3'));var moment=require(_0x0bc1('0x4'));var BPromise=require(_0x0bc1('0x5'));var Mustache=require(_0x0bc1('0x6'));var util=require(_0x0bc1('0x7'));var path=require('path');var sox=require('sox');var csv=require('to-csv');var ejs=require(_0x0bc1('0x8'));var fs=require('fs');var fs_extra=require(_0x0bc1('0x9'));var _=require(_0x0bc1('0xa'));var squel=require('squel');var crypto=require(_0x0bc1('0xb'));var jsforce=require(_0x0bc1('0xc'));var deskjs=require(_0x0bc1('0xd'));var toCsv=require(_0x0bc1('0xe'));var querystring=require('querystring');var Papa=require(_0x0bc1('0xf'));var Redis=require(_0x0bc1('0x10'));var authService=require(_0x0bc1('0x11'));var qs=require('../../components/parsers/qs');var as=require(_0x0bc1('0x12'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0x0bc1('0x13'));var utils=require('../../config/utils');var config=require(_0x0bc1('0x14'));var licenseUtil=require(_0x0bc1('0x15'));var db=require(_0x0bc1('0x16'))['db'];function respondWithStatusCode(_0x410ed7,_0x4933cd){_0x4933cd=_0x4933cd||0xcc;return function(_0xe786d2){if(_0xe786d2){return _0x410ed7[_0x0bc1('0x17')](_0x4933cd);}return _0x410ed7['status'](_0x4933cd)[_0x0bc1('0x18')]();};}function respondWithResult(_0x4b9fd2,_0x1a2f08){_0x1a2f08=_0x1a2f08||0xc8;return function(_0x3947ea){if(_0x3947ea){return _0x4b9fd2[_0x0bc1('0x19')](_0x1a2f08)[_0x0bc1('0x1a')](_0x3947ea);}};}function respondWithFilteredResult(_0x692030,_0x41ca6f){return function(_0x1e4255){if(_0x1e4255){var _0x5acc92=typeof _0x41ca6f[_0x0bc1('0x1b')]===_0x0bc1('0x1c')&&typeof _0x41ca6f['limit']===_0x0bc1('0x1c');var _0x3b4061=_0x1e4255[_0x0bc1('0x1d')];var _0x296b80=_0x5acc92?0x0:_0x41ca6f[_0x0bc1('0x1b')];var _0x57d4c8=_0x5acc92?_0x1e4255[_0x0bc1('0x1d')]:_0x41ca6f['offset']+_0x41ca6f[_0x0bc1('0x1e')];var _0x42b143;if(_0x57d4c8>=_0x3b4061){_0x57d4c8=_0x3b4061;_0x42b143=0xc8;}else{_0x42b143=0xce;}_0x692030[_0x0bc1('0x19')](_0x42b143);return _0x692030['set'](_0x0bc1('0x1f'),_0x296b80+'-'+_0x57d4c8+'/'+_0x3b4061)[_0x0bc1('0x1a')](_0x1e4255);}return null;};}function patchUpdates(_0x53df26){return function(_0x45c365){try{jsonpatch[_0x0bc1('0x20')](_0x45c365,_0x53df26,!![]);}catch(_0x5ac187){return BPromise['reject'](_0x5ac187);}return _0x45c365[_0x0bc1('0x21')]();};}function saveUpdates(_0x19f5c1,_0x111bb0){return function(_0x47e4f0){if(_0x47e4f0){return _0x47e4f0[_0x0bc1('0x22')](_0x19f5c1)['then'](function(_0x5c0900){return _0x5c0900;});}return null;};}function removeEntity(_0x5e6353,_0x4d20e4){return function(_0x3ec837){if(_0x3ec837){return _0x3ec837['destroy']()[_0x0bc1('0x23')](function(){var _0x2ced5c=_0x3ec837['get']({'plain':!![]});var _0x435a29='Scheduler';return db[_0x0bc1('0x24')][_0x0bc1('0x25')]({'where':{'type':_0x435a29,'resourceId':_0x2ced5c['id']}})['then'](function(){return _0x3ec837;});})['then'](function(){_0x5e6353[_0x0bc1('0x19')](0xcc)['end']();});}};}function handleEntityNotFound(_0x1086b7,_0x225439){return function(_0x598565){if(!_0x598565){_0x1086b7[_0x0bc1('0x17')](0x194);}return _0x598565;};}function handleError(_0x15430d,_0x380f59){_0x380f59=_0x380f59||0x1f4;return function(_0x1a42dc){logger[_0x0bc1('0x26')](_0x1a42dc[_0x0bc1('0x27')]);if(_0x1a42dc['name']){delete _0x1a42dc[_0x0bc1('0x28')];}_0x15430d[_0x0bc1('0x19')](_0x380f59)[_0x0bc1('0x29')](_0x1a42dc);};}exports[_0x0bc1('0x2a')]=function(_0xcd5bc5,_0x9fd58c){var _0xf81553={},_0x1e238b={},_0x540b5c={'count':0x0,'rows':[]};var _0x174c9a=_['map'](db[_0x0bc1('0x2b')][_0x0bc1('0x2c')],function(_0xa9a8cb){return{'name':_0xa9a8cb[_0x0bc1('0x2d')],'type':_0xa9a8cb['type'][_0x0bc1('0x2e')]};});_0x1e238b['model']=_[_0x0bc1('0x2f')](_0x174c9a,'name');_0x1e238b[_0x0bc1('0x30')]=_[_0x0bc1('0x31')](_0xcd5bc5[_0x0bc1('0x30')]);_0x1e238b[_0x0bc1('0x32')]=_[_0x0bc1('0x33')](_0x1e238b['model'],_0x1e238b[_0x0bc1('0x30')]);_0xf81553[_0x0bc1('0x34')]=_[_0x0bc1('0x33')](_0x1e238b[_0x0bc1('0x35')],qs[_0x0bc1('0x36')](_0xcd5bc5[_0x0bc1('0x30')][_0x0bc1('0x36')]));_0xf81553[_0x0bc1('0x34')]=_0xf81553['attributes'][_0x0bc1('0x37')]?_0xf81553['attributes']:_0x1e238b[_0x0bc1('0x35')];if(!_0xcd5bc5[_0x0bc1('0x30')]['hasOwnProperty'](_0x0bc1('0x38'))){_0xf81553[_0x0bc1('0x1e')]=qs[_0x0bc1('0x1e')](_0xcd5bc5[_0x0bc1('0x30')][_0x0bc1('0x1e')]);_0xf81553['offset']=qs[_0x0bc1('0x1b')](_0xcd5bc5[_0x0bc1('0x30')][_0x0bc1('0x1b')]);}_0xf81553[_0x0bc1('0x39')]=qs[_0x0bc1('0x3a')](_0xcd5bc5[_0x0bc1('0x30')][_0x0bc1('0x3a')]);_0xf81553[_0x0bc1('0x3b')]=qs[_0x0bc1('0x32')](_[_0x0bc1('0x3c')](_0xcd5bc5[_0x0bc1('0x30')],_0x1e238b['filters']),_0x174c9a);if(_0xcd5bc5[_0x0bc1('0x30')][_0x0bc1('0x3d')]){_0xf81553[_0x0bc1('0x3b')]=_[_0x0bc1('0x3e')](_0xf81553[_0x0bc1('0x3b')],{'$or':_[_0x0bc1('0x2f')](_0x174c9a,function(_0x53aebb){if(_0x53aebb[_0x0bc1('0x3f')]!=='VIRTUAL'){var _0x4c8580={};_0x4c8580[_0x53aebb[_0x0bc1('0x28')]]={'$like':'%'+_0xcd5bc5[_0x0bc1('0x30')][_0x0bc1('0x3d')]+'%'};return _0x4c8580;}})});}_0xf81553=_['merge']({},_0xf81553,_0xcd5bc5[_0x0bc1('0x40')]);var _0x3eefde={'where':_0xf81553['where']};return db[_0x0bc1('0x2b')]['count'](_0x3eefde)[_0x0bc1('0x23')](function(_0x566bc8){_0x540b5c[_0x0bc1('0x1d')]=_0x566bc8;if(_0xcd5bc5[_0x0bc1('0x30')][_0x0bc1('0x41')]){_0xf81553[_0x0bc1('0x42')]=[{'all':!![]}];}return db['Schedule'][_0x0bc1('0x43')](_0xf81553);})[_0x0bc1('0x23')](function(_0x4b5191){_0x540b5c[_0x0bc1('0x44')]=_0x4b5191;return _0x540b5c;})['then'](respondWithFilteredResult(_0x9fd58c,_0xf81553))[_0x0bc1('0x45')](handleError(_0x9fd58c,null));};exports[_0x0bc1('0x46')]=function(_0x51acb0,_0x22c0b9){var _0x51eeed={'raw':![],'where':{'id':_0x51acb0[_0x0bc1('0x47')]['id']}},_0x5e10e2={};_0x5e10e2[_0x0bc1('0x35')]=_[_0x0bc1('0x31')](db[_0x0bc1('0x2b')][_0x0bc1('0x2c')]);_0x5e10e2[_0x0bc1('0x30')]=_[_0x0bc1('0x31')](_0x51acb0[_0x0bc1('0x30')]);_0x5e10e2[_0x0bc1('0x32')]=_[_0x0bc1('0x33')](_0x5e10e2[_0x0bc1('0x35')],_0x5e10e2[_0x0bc1('0x30')]);_0x51eeed[_0x0bc1('0x34')]=_[_0x0bc1('0x33')](_0x5e10e2[_0x0bc1('0x35')],qs['fields'](_0x51acb0['query'][_0x0bc1('0x36')]));_0x51eeed[_0x0bc1('0x34')]=_0x51eeed['attributes'][_0x0bc1('0x37')]?_0x51eeed[_0x0bc1('0x34')]:_0x5e10e2[_0x0bc1('0x35')];if(_0x51acb0[_0x0bc1('0x30')]['includeAll']){_0x51eeed[_0x0bc1('0x42')]=[{'all':!![]}];}_0x51eeed=_[_0x0bc1('0x3e')]({},_0x51eeed,_0x51acb0[_0x0bc1('0x40')]);return db['Schedule'][_0x0bc1('0x48')](_0x51eeed)[_0x0bc1('0x23')](handleEntityNotFound(_0x22c0b9,null))[_0x0bc1('0x23')](respondWithResult(_0x22c0b9,null))['catch'](handleError(_0x22c0b9,null));};exports['create']=function(_0x5cacde,_0x5a28ab){return db[_0x0bc1('0x2b')]['create'](_0x5cacde[_0x0bc1('0x49')],{})[_0x0bc1('0x23')](function(_0x1b2506){var _0x13db0a=_0x5cacde[_0x0bc1('0x4a')][_0x0bc1('0x4b')]({'plain':!![]});if(!_0x13db0a)throw new Error(_0x0bc1('0x4c'));if(_0x13db0a[_0x0bc1('0x4d')]===_0x0bc1('0x4a')){var _0x3ee36a=_0x1b2506['get']({'plain':!![]});var _0x1806d5='Scheduler';return db['UserProfileSection']['find']({'where':{'name':_0x1806d5,'userProfileId':_0x13db0a[_0x0bc1('0x4e')]},'raw':!![]})[_0x0bc1('0x23')](function(_0x1481f0){if(_0x1481f0&&_0x1481f0[_0x0bc1('0x4f')]===0x0){return db[_0x0bc1('0x24')]['create']({'name':_0x3ee36a[_0x0bc1('0x28')],'resourceId':_0x3ee36a['id'],'type':_0x1481f0[_0x0bc1('0x28')],'sectionId':_0x1481f0['id']},{})[_0x0bc1('0x23')](function(){return _0x1b2506;});}else{return _0x1b2506;}})[_0x0bc1('0x45')](function(_0x4a22e7){logger[_0x0bc1('0x26')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x4a22e7);throw _0x4a22e7;});}return _0x1b2506;})[_0x0bc1('0x23')](respondWithResult(_0x5a28ab,0xc9))['catch'](handleError(_0x5a28ab,null));};exports[_0x0bc1('0x22')]=function(_0x5e0657,_0x39cef1){if(_0x5e0657[_0x0bc1('0x49')]['id']){delete _0x5e0657[_0x0bc1('0x49')]['id'];}return db['Schedule'][_0x0bc1('0x48')]({'where':{'id':_0x5e0657[_0x0bc1('0x47')]['id']}})[_0x0bc1('0x23')](handleEntityNotFound(_0x39cef1,null))[_0x0bc1('0x23')](saveUpdates(_0x5e0657[_0x0bc1('0x49')],null))['then'](respondWithResult(_0x39cef1,null))[_0x0bc1('0x45')](handleError(_0x39cef1,null));};exports[_0x0bc1('0x25')]=function(_0x1de8cd,_0x318a68){return db['Schedule'][_0x0bc1('0x48')]({'where':{'id':_0x1de8cd[_0x0bc1('0x47')]['id']}})[_0x0bc1('0x23')](handleEntityNotFound(_0x318a68,null))[_0x0bc1('0x23')](removeEntity(_0x318a68,null))[_0x0bc1('0x45')](handleError(_0x318a68,null));};exports[_0x0bc1('0x50')]=function(_0x3bc28c,_0x15c00d,_0x1df7f0){var _0x5d744a=require('../../config/schedule');return db[_0x0bc1('0x2b')][_0x0bc1('0x48')]({'where':{'id':_0x3bc28c['params']['id']},'raw':!![]})[_0x0bc1('0x23')](handleEntityNotFound(_0x15c00d,null))[_0x0bc1('0x23')](function(){_0x5d744a[_0x0bc1('0x50')](_0x3bc28c[_0x0bc1('0x47')]['id']);})[_0x0bc1('0x23')](respondWithStatusCode(_0x15c00d,null))['catch'](handleError(_0x15c00d,null));};