Built motion from commit 3d3e98f2.|2.6.29
[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 _0xa3cc=['UserProfileSection','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','body','params','run','zip-dir','request-promise','moment','bluebird','mustache','util','sox','to-csv','ejs','lodash','squel','jsforce','querystring','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','status','end','json','offset','count','limit','set','apply','reject','save','then','destroy','get','Scheduler','UserProfileResource','error','stack','name','send','index','map','Schedule','rawAttributes','fieldName','type','key','query','keys','filters','intersection','model','fields','length','attributes','hasOwnProperty','order','sort','where','pick','filter','merge','options','includeAll','include','findAll','rows','catch','show','find','create','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role'];(function(_0x149bc3,_0x4b09d8){var _0x5d33eb=function(_0x46af03){while(--_0x46af03){_0x149bc3['push'](_0x149bc3['shift']());}};_0x5d33eb(++_0x4b09d8);}(_0xa3cc,0x192));var _0xca3c=function(_0x3a8b41,_0x122312){_0x3a8b41=_0x3a8b41-0x0;var _0x19cb35=_0xa3cc[_0x3a8b41];return _0x19cb35;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0xca3c('0x0'));var jsonpatch=require('fast-json-patch');var rp=require(_0xca3c('0x1'));var moment=require(_0xca3c('0x2'));var BPromise=require(_0xca3c('0x3'));var Mustache=require(_0xca3c('0x4'));var util=require(_0xca3c('0x5'));var path=require('path');var sox=require(_0xca3c('0x6'));var csv=require(_0xca3c('0x7'));var ejs=require(_0xca3c('0x8'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xca3c('0x9'));var squel=require(_0xca3c('0xa'));var crypto=require('crypto');var jsforce=require(_0xca3c('0xb'));var deskjs=require('desk.js');var toCsv=require(_0xca3c('0x7'));var querystring=require(_0xca3c('0xc'));var Papa=require('papaparse');var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0xca3c('0xd'));var as=require(_0xca3c('0xe'));var hardwareService=require(_0xca3c('0xf'));var logger=require(_0xca3c('0x10'))(_0xca3c('0x11'));var utils=require(_0xca3c('0x12'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x271d67,_0x5bae29){_0x5bae29=_0x5bae29||0xcc;return function(_0x5469a9){if(_0x5469a9){return _0x271d67['sendStatus'](_0x5bae29);}return _0x271d67[_0xca3c('0x13')](_0x5bae29)[_0xca3c('0x14')]();};}function respondWithResult(_0x2f78dc,_0x40b30c){_0x40b30c=_0x40b30c||0xc8;return function(_0x2e259e){if(_0x2e259e){return _0x2f78dc[_0xca3c('0x13')](_0x40b30c)[_0xca3c('0x15')](_0x2e259e);}};}function respondWithFilteredResult(_0x12de8e,_0x1c93e0){return function(_0x4cfe3c){if(_0x4cfe3c){var _0x187067=typeof _0x1c93e0[_0xca3c('0x16')]==='undefined'&&typeof _0x1c93e0['limit']==='undefined';var _0x42002f=_0x4cfe3c[_0xca3c('0x17')];var _0x2de503=_0x187067?0x0:_0x1c93e0['offset'];var _0x3cb14b=_0x187067?_0x4cfe3c[_0xca3c('0x17')]:_0x1c93e0[_0xca3c('0x16')]+_0x1c93e0[_0xca3c('0x18')];var _0x690549;if(_0x3cb14b>=_0x42002f){_0x3cb14b=_0x42002f;_0x690549=0xc8;}else{_0x690549=0xce;}_0x12de8e['status'](_0x690549);return _0x12de8e[_0xca3c('0x19')]('Content-Range',_0x2de503+'-'+_0x3cb14b+'/'+_0x42002f)['json'](_0x4cfe3c);}return null;};}function patchUpdates(_0x3e1de7){return function(_0x4e1d15){try{jsonpatch[_0xca3c('0x1a')](_0x4e1d15,_0x3e1de7,!![]);}catch(_0x3508af){return BPromise[_0xca3c('0x1b')](_0x3508af);}return _0x4e1d15[_0xca3c('0x1c')]();};}function saveUpdates(_0x5c36e7,_0x98ee5){return function(_0x8384cb){if(_0x8384cb){return _0x8384cb['update'](_0x5c36e7)[_0xca3c('0x1d')](function(_0x41b402){return _0x41b402;});}return null;};}function removeEntity(_0x51cdba,_0x2fea32){return function(_0x54884b){if(_0x54884b){return _0x54884b[_0xca3c('0x1e')]()[_0xca3c('0x1d')](function(){var _0xa3aba6=_0x54884b[_0xca3c('0x1f')]({'plain':!![]});var _0x46282b=_0xca3c('0x20');return db[_0xca3c('0x21')][_0xca3c('0x1e')]({'where':{'type':_0x46282b,'resourceId':_0xa3aba6['id']}})[_0xca3c('0x1d')](function(){return _0x54884b;});})[_0xca3c('0x1d')](function(){_0x51cdba[_0xca3c('0x13')](0xcc)[_0xca3c('0x14')]();});}};}function handleEntityNotFound(_0x3bf5e1,_0x20869e){return function(_0x5f2064){if(!_0x5f2064){_0x3bf5e1['sendStatus'](0x194);}return _0x5f2064;};}function handleError(_0x3cee59,_0x49b472){_0x49b472=_0x49b472||0x1f4;return function(_0x7b2b87){logger[_0xca3c('0x22')](_0x7b2b87[_0xca3c('0x23')]);if(_0x7b2b87[_0xca3c('0x24')]){delete _0x7b2b87[_0xca3c('0x24')];}_0x3cee59[_0xca3c('0x13')](_0x49b472)[_0xca3c('0x25')](_0x7b2b87);};}exports[_0xca3c('0x26')]=function(_0x3039d9,_0x5de701){var _0x5c40ba={},_0x39d263={},_0x5edd5b={'count':0x0,'rows':[]};var _0x597607=_[_0xca3c('0x27')](db[_0xca3c('0x28')][_0xca3c('0x29')],function(_0x28459e){return{'name':_0x28459e[_0xca3c('0x2a')],'type':_0x28459e[_0xca3c('0x2b')][_0xca3c('0x2c')]};});_0x39d263['model']=_[_0xca3c('0x27')](_0x597607,_0xca3c('0x24'));_0x39d263[_0xca3c('0x2d')]=_[_0xca3c('0x2e')](_0x3039d9['query']);_0x39d263[_0xca3c('0x2f')]=_[_0xca3c('0x30')](_0x39d263['model'],_0x39d263['query']);_0x5c40ba['attributes']=_[_0xca3c('0x30')](_0x39d263[_0xca3c('0x31')],qs['fields'](_0x3039d9[_0xca3c('0x2d')][_0xca3c('0x32')]));_0x5c40ba['attributes']=_0x5c40ba['attributes'][_0xca3c('0x33')]?_0x5c40ba[_0xca3c('0x34')]:_0x39d263[_0xca3c('0x31')];if(!_0x3039d9[_0xca3c('0x2d')][_0xca3c('0x35')]('nolimit')){_0x5c40ba['limit']=qs[_0xca3c('0x18')](_0x3039d9['query'][_0xca3c('0x18')]);_0x5c40ba['offset']=qs[_0xca3c('0x16')](_0x3039d9['query'][_0xca3c('0x16')]);}_0x5c40ba[_0xca3c('0x36')]=qs[_0xca3c('0x37')](_0x3039d9[_0xca3c('0x2d')]['sort']);_0x5c40ba[_0xca3c('0x38')]=qs[_0xca3c('0x2f')](_[_0xca3c('0x39')](_0x3039d9['query'],_0x39d263['filters']),_0x597607);if(_0x3039d9['query'][_0xca3c('0x3a')]){_0x5c40ba[_0xca3c('0x38')]=_[_0xca3c('0x3b')](_0x5c40ba[_0xca3c('0x38')],{'$or':_[_0xca3c('0x27')](_0x597607,function(_0x19011a){if(_0x19011a['type']!=='VIRTUAL'){var _0x5ae3d7={};_0x5ae3d7[_0x19011a[_0xca3c('0x24')]]={'$like':'%'+_0x3039d9[_0xca3c('0x2d')][_0xca3c('0x3a')]+'%'};return _0x5ae3d7;}})});}_0x5c40ba=_[_0xca3c('0x3b')]({},_0x5c40ba,_0x3039d9[_0xca3c('0x3c')]);var _0x457d86={'where':_0x5c40ba[_0xca3c('0x38')]};return db['Schedule'][_0xca3c('0x17')](_0x457d86)[_0xca3c('0x1d')](function(_0x31c391){_0x5edd5b[_0xca3c('0x17')]=_0x31c391;if(_0x3039d9[_0xca3c('0x2d')][_0xca3c('0x3d')]){_0x5c40ba[_0xca3c('0x3e')]=[{'all':!![]}];}return db[_0xca3c('0x28')][_0xca3c('0x3f')](_0x5c40ba);})[_0xca3c('0x1d')](function(_0x3e83f0){_0x5edd5b[_0xca3c('0x40')]=_0x3e83f0;return _0x5edd5b;})['then'](respondWithFilteredResult(_0x5de701,_0x5c40ba))[_0xca3c('0x41')](handleError(_0x5de701,null));};exports[_0xca3c('0x42')]=function(_0x2808e9,_0x2d8d7c){var _0x5e7205={'raw':![],'where':{'id':_0x2808e9['params']['id']}},_0x1557af={};_0x1557af[_0xca3c('0x31')]=_[_0xca3c('0x2e')](db['Schedule']['rawAttributes']);_0x1557af[_0xca3c('0x2d')]=_[_0xca3c('0x2e')](_0x2808e9['query']);_0x1557af[_0xca3c('0x2f')]=_['intersection'](_0x1557af['model'],_0x1557af['query']);_0x5e7205[_0xca3c('0x34')]=_[_0xca3c('0x30')](_0x1557af[_0xca3c('0x31')],qs[_0xca3c('0x32')](_0x2808e9[_0xca3c('0x2d')][_0xca3c('0x32')]));_0x5e7205[_0xca3c('0x34')]=_0x5e7205[_0xca3c('0x34')][_0xca3c('0x33')]?_0x5e7205[_0xca3c('0x34')]:_0x1557af[_0xca3c('0x31')];if(_0x2808e9[_0xca3c('0x2d')][_0xca3c('0x3d')]){_0x5e7205['include']=[{'all':!![]}];}_0x5e7205=_[_0xca3c('0x3b')]({},_0x5e7205,_0x2808e9[_0xca3c('0x3c')]);return db[_0xca3c('0x28')][_0xca3c('0x43')](_0x5e7205)[_0xca3c('0x1d')](handleEntityNotFound(_0x2d8d7c,null))[_0xca3c('0x1d')](respondWithResult(_0x2d8d7c,null))[_0xca3c('0x41')](handleError(_0x2d8d7c,null));};exports[_0xca3c('0x44')]=function(_0xadb262,_0x14e2d0){return db[_0xca3c('0x28')][_0xca3c('0x44')](_0xadb262['body'],{})[_0xca3c('0x1d')](function(_0x593221){var _0x2ada23=_0xadb262[_0xca3c('0x45')][_0xca3c('0x1f')]({'plain':!![]});if(!_0x2ada23)throw new Error(_0xca3c('0x46'));if(_0x2ada23[_0xca3c('0x47')]==='user'){var _0x452a47=_0x593221['get']({'plain':!![]});var _0xe20572=_0xca3c('0x20');return db[_0xca3c('0x48')]['find']({'where':{'name':_0xe20572,'userProfileId':_0x2ada23['userProfileId']},'raw':!![]})[_0xca3c('0x1d')](function(_0x30bbe1){if(_0x30bbe1&&_0x30bbe1[_0xca3c('0x49')]===0x0){return db[_0xca3c('0x21')]['create']({'name':_0x452a47[_0xca3c('0x24')],'resourceId':_0x452a47['id'],'type':_0x30bbe1['name'],'sectionId':_0x30bbe1['id']},{})[_0xca3c('0x1d')](function(){return _0x593221;});}else{return _0x593221;}})[_0xca3c('0x41')](function(_0x2c0f5d){logger['error'](_0xca3c('0x4a'),_0x2c0f5d);throw _0x2c0f5d;});}return _0x593221;})[_0xca3c('0x1d')](respondWithResult(_0x14e2d0,0xc9))[_0xca3c('0x41')](handleError(_0x14e2d0,null));};exports[_0xca3c('0x4b')]=function(_0x25c227,_0x72ad4b){if(_0x25c227[_0xca3c('0x4c')]['id']){delete _0x25c227[_0xca3c('0x4c')]['id'];}return db[_0xca3c('0x28')][_0xca3c('0x43')]({'where':{'id':_0x25c227[_0xca3c('0x4d')]['id']}})[_0xca3c('0x1d')](handleEntityNotFound(_0x72ad4b,null))[_0xca3c('0x1d')](saveUpdates(_0x25c227['body'],null))[_0xca3c('0x1d')](respondWithResult(_0x72ad4b,null))['catch'](handleError(_0x72ad4b,null));};exports[_0xca3c('0x1e')]=function(_0xece3c2,_0x50390a){return db[_0xca3c('0x28')]['find']({'where':{'id':_0xece3c2[_0xca3c('0x4d')]['id']}})['then'](handleEntityNotFound(_0x50390a,null))[_0xca3c('0x1d')](removeEntity(_0x50390a,null))[_0xca3c('0x41')](handleError(_0x50390a,null));};exports[_0xca3c('0x4e')]=function(_0x2f2c97,_0x39d32e,_0x49912a){var _0x4e8b36=require('../../config/schedule');return db['Schedule'][_0xca3c('0x43')]({'where':{'id':_0x2f2c97['params']['id']},'raw':!![]})[_0xca3c('0x1d')](handleEntityNotFound(_0x39d32e,null))[_0xca3c('0x1d')](function(){_0x4e8b36[_0xca3c('0x4e')](_0x2f2c97[_0xca3c('0x4d')]['id']);})[_0xca3c('0x1d')](respondWithStatusCode(_0x39d32e,null))[_0xca3c('0x41')](handleError(_0x39d32e,null));};