Built motion from commit 85328c08.|2.5.50
[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 _0x8040=['query','where','pick','filter','merge','type','options','includeAll','include','findAll','rows','catch','find','create','body','user','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','params','../../config/schedule','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','mustache','util','path','to-csv','ejs','fs-extra','lodash','crypto','jsforce','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','api','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','undefined','count','limit','set','Content-Range','apply','reject','save','update','then','destroy','UserProfileResource','error','stack','name','send','index','Schedule','rawAttributes','fieldName','key','model','map','keys','filters','intersection','attributes','fields','length','hasOwnProperty'];(function(_0x5270a2,_0x119ebf){var _0x55c4f3=function(_0x107dbc){while(--_0x107dbc){_0x5270a2['push'](_0x5270a2['shift']());}};_0x55c4f3(++_0x119ebf);}(_0x8040,0x1b7));var _0x0804=function(_0x47b58b,_0x41a189){_0x47b58b=_0x47b58b-0x0;var _0x46bebe=_0x8040[_0x47b58b];return _0x46bebe;};'use strict';var emlformat=require(_0x0804('0x0'));var rimraf=require(_0x0804('0x1'));var zipdir=require(_0x0804('0x2'));var jsonpatch=require(_0x0804('0x3'));var rp=require(_0x0804('0x4'));var moment=require(_0x0804('0x5'));var BPromise=require('bluebird');var Mustache=require(_0x0804('0x6'));var util=require(_0x0804('0x7'));var path=require(_0x0804('0x8'));var sox=require('sox');var csv=require(_0x0804('0x9'));var ejs=require(_0x0804('0xa'));var fs=require('fs');var fs_extra=require(_0x0804('0xb'));var _=require(_0x0804('0xc'));var squel=require('squel');var crypto=require(_0x0804('0xd'));var jsforce=require(_0x0804('0xe'));var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0x0804('0xf'));var Papa=require(_0x0804('0x10'));var Redis=require('ioredis');var authService=require(_0x0804('0x11'));var qs=require(_0x0804('0x12'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x0804('0x13'));var logger=require('../../config/logger')(_0x0804('0x14'));var utils=require('../../config/utils');var config=require(_0x0804('0x15'));var licenseUtil=require(_0x0804('0x16'));var db=require(_0x0804('0x17'))['db'];function respondWithStatusCode(_0x4b6975,_0x1a6987){_0x1a6987=_0x1a6987||0xcc;return function(_0x4750cc){if(_0x4750cc){return _0x4b6975[_0x0804('0x18')](_0x1a6987);}return _0x4b6975[_0x0804('0x19')](_0x1a6987)[_0x0804('0x1a')]();};}function respondWithResult(_0x5a201a,_0x3711b4){_0x3711b4=_0x3711b4||0xc8;return function(_0x518ddb){if(_0x518ddb){return _0x5a201a[_0x0804('0x19')](_0x3711b4)[_0x0804('0x1b')](_0x518ddb);}};}function respondWithFilteredResult(_0x568c28,_0x3b5f21){return function(_0x1b0158){if(_0x1b0158){var _0x277f6e=typeof _0x3b5f21[_0x0804('0x1c')]==='undefined'&&typeof _0x3b5f21['limit']===_0x0804('0x1d');var _0x2e9a89=_0x1b0158[_0x0804('0x1e')];var _0xbca25c=_0x277f6e?0x0:_0x3b5f21[_0x0804('0x1c')];var _0x34b9ab=_0x277f6e?_0x1b0158['count']:_0x3b5f21[_0x0804('0x1c')]+_0x3b5f21[_0x0804('0x1f')];var _0x19fd44;if(_0x34b9ab>=_0x2e9a89){_0x34b9ab=_0x2e9a89;_0x19fd44=0xc8;}else{_0x19fd44=0xce;}_0x568c28[_0x0804('0x19')](_0x19fd44);return _0x568c28[_0x0804('0x20')](_0x0804('0x21'),_0xbca25c+'-'+_0x34b9ab+'/'+_0x2e9a89)[_0x0804('0x1b')](_0x1b0158);}return null;};}function patchUpdates(_0x8c7856){return function(_0x4dbff1){try{jsonpatch[_0x0804('0x22')](_0x4dbff1,_0x8c7856,!![]);}catch(_0x24f59c){return BPromise[_0x0804('0x23')](_0x24f59c);}return _0x4dbff1[_0x0804('0x24')]();};}function saveUpdates(_0x12c574,_0x37cccb){return function(_0x2d30d6){if(_0x2d30d6){return _0x2d30d6[_0x0804('0x25')](_0x12c574)[_0x0804('0x26')](function(_0x4af15d){return _0x4af15d;});}return null;};}function removeEntity(_0x57d202,_0xd1024f){return function(_0x26dea9){if(_0x26dea9){return _0x26dea9[_0x0804('0x27')]()['then'](function(){var _0x19242c=_0x26dea9['get']({'plain':!![]});var _0x564178='Scheduler';return db[_0x0804('0x28')][_0x0804('0x27')]({'where':{'type':_0x564178,'resourceId':_0x19242c['id']}})[_0x0804('0x26')](function(){return _0x26dea9;});})[_0x0804('0x26')](function(){_0x57d202[_0x0804('0x19')](0xcc)[_0x0804('0x1a')]();});}};}function handleEntityNotFound(_0x34a01e,_0x494969){return function(_0x5666fa){if(!_0x5666fa){_0x34a01e['sendStatus'](0x194);}return _0x5666fa;};}function handleError(_0x106ec9,_0x2fbc28){_0x2fbc28=_0x2fbc28||0x1f4;return function(_0x1f6afc){logger[_0x0804('0x29')](_0x1f6afc[_0x0804('0x2a')]);if(_0x1f6afc['name']){delete _0x1f6afc[_0x0804('0x2b')];}_0x106ec9[_0x0804('0x19')](_0x2fbc28)[_0x0804('0x2c')](_0x1f6afc);};}exports[_0x0804('0x2d')]=function(_0x8b1f80,_0x5c0a40){var _0x3c043c={},_0x13e506={},_0x56f075={'count':0x0,'rows':[]};var _0x4fa9b1=_['map'](db[_0x0804('0x2e')][_0x0804('0x2f')],function(_0x2148af){return{'name':_0x2148af[_0x0804('0x30')],'type':_0x2148af['type'][_0x0804('0x31')]};});_0x13e506[_0x0804('0x32')]=_[_0x0804('0x33')](_0x4fa9b1,_0x0804('0x2b'));_0x13e506['query']=_[_0x0804('0x34')](_0x8b1f80['query']);_0x13e506[_0x0804('0x35')]=_[_0x0804('0x36')](_0x13e506[_0x0804('0x32')],_0x13e506['query']);_0x3c043c[_0x0804('0x37')]=_[_0x0804('0x36')](_0x13e506[_0x0804('0x32')],qs[_0x0804('0x38')](_0x8b1f80['query']['fields']));_0x3c043c[_0x0804('0x37')]=_0x3c043c[_0x0804('0x37')][_0x0804('0x39')]?_0x3c043c[_0x0804('0x37')]:_0x13e506[_0x0804('0x32')];if(!_0x8b1f80['query'][_0x0804('0x3a')]('nolimit')){_0x3c043c[_0x0804('0x1f')]=qs[_0x0804('0x1f')](_0x8b1f80[_0x0804('0x3b')]['limit']);_0x3c043c[_0x0804('0x1c')]=qs[_0x0804('0x1c')](_0x8b1f80[_0x0804('0x3b')]['offset']);}_0x3c043c['order']=qs['sort'](_0x8b1f80['query']['sort']);_0x3c043c[_0x0804('0x3c')]=qs[_0x0804('0x35')](_[_0x0804('0x3d')](_0x8b1f80['query'],_0x13e506[_0x0804('0x35')]),_0x4fa9b1);if(_0x8b1f80['query'][_0x0804('0x3e')]){_0x3c043c[_0x0804('0x3c')]=_[_0x0804('0x3f')](_0x3c043c[_0x0804('0x3c')],{'$or':_[_0x0804('0x33')](_0x4fa9b1,function(_0x1663e2){if(_0x1663e2[_0x0804('0x40')]!=='VIRTUAL'){var _0x16b4c1={};_0x16b4c1[_0x1663e2[_0x0804('0x2b')]]={'$like':'%'+_0x8b1f80[_0x0804('0x3b')]['filter']+'%'};return _0x16b4c1;}})});}_0x3c043c=_['merge']({},_0x3c043c,_0x8b1f80[_0x0804('0x41')]);var _0xd906f0={'where':_0x3c043c[_0x0804('0x3c')]};return db['Schedule']['count'](_0xd906f0)[_0x0804('0x26')](function(_0x46870a){_0x56f075['count']=_0x46870a;if(_0x8b1f80['query'][_0x0804('0x42')]){_0x3c043c[_0x0804('0x43')]=[{'all':!![]}];}return db['Schedule'][_0x0804('0x44')](_0x3c043c);})[_0x0804('0x26')](function(_0x1b55c8){_0x56f075[_0x0804('0x45')]=_0x1b55c8;return _0x56f075;})[_0x0804('0x26')](respondWithFilteredResult(_0x5c0a40,_0x3c043c))[_0x0804('0x46')](handleError(_0x5c0a40,null));};exports['show']=function(_0x5581c7,_0x586377){var _0x76fac9={'raw':![],'where':{'id':_0x5581c7['params']['id']}},_0x49646a={};_0x49646a[_0x0804('0x32')]=_[_0x0804('0x34')](db[_0x0804('0x2e')][_0x0804('0x2f')]);_0x49646a[_0x0804('0x3b')]=_[_0x0804('0x34')](_0x5581c7['query']);_0x49646a['filters']=_[_0x0804('0x36')](_0x49646a[_0x0804('0x32')],_0x49646a['query']);_0x76fac9['attributes']=_['intersection'](_0x49646a[_0x0804('0x32')],qs['fields'](_0x5581c7[_0x0804('0x3b')]['fields']));_0x76fac9[_0x0804('0x37')]=_0x76fac9[_0x0804('0x37')]['length']?_0x76fac9[_0x0804('0x37')]:_0x49646a['model'];if(_0x5581c7[_0x0804('0x3b')][_0x0804('0x42')]){_0x76fac9['include']=[{'all':!![]}];}_0x76fac9=_[_0x0804('0x3f')]({},_0x76fac9,_0x5581c7[_0x0804('0x41')]);return db[_0x0804('0x2e')][_0x0804('0x47')](_0x76fac9)['then'](handleEntityNotFound(_0x586377,null))[_0x0804('0x26')](respondWithResult(_0x586377,null))[_0x0804('0x46')](handleError(_0x586377,null));};exports['create']=function(_0x3b3f9f,_0x42224d){return db[_0x0804('0x2e')][_0x0804('0x48')](_0x3b3f9f[_0x0804('0x49')],{})['then'](function(_0x4a5562){var _0x3716ae=_0x3b3f9f[_0x0804('0x4a')][_0x0804('0x4b')]({'plain':!![]});if(!_0x3716ae)throw new Error(_0x0804('0x4c'));if(_0x3716ae['role']==='user'){var _0x2a5962=_0x4a5562['get']({'plain':!![]});var _0x3757ca='Scheduler';return db[_0x0804('0x4d')]['find']({'where':{'name':_0x3757ca,'userProfileId':_0x3716ae[_0x0804('0x4e')]},'raw':!![]})[_0x0804('0x26')](function(_0x3f083b){if(_0x3f083b&&_0x3f083b[_0x0804('0x4f')]===0x0){return db[_0x0804('0x28')][_0x0804('0x48')]({'name':_0x2a5962[_0x0804('0x2b')],'resourceId':_0x2a5962['id'],'type':_0x3f083b['name'],'sectionId':_0x3f083b['id']},{})['then'](function(){return _0x4a5562;});}else{return _0x4a5562;}})[_0x0804('0x46')](function(_0x580ae9){logger[_0x0804('0x29')](_0x0804('0x50'),_0x580ae9);throw _0x580ae9;});}return _0x4a5562;})[_0x0804('0x26')](respondWithResult(_0x42224d,0xc9))[_0x0804('0x46')](handleError(_0x42224d,null));};exports[_0x0804('0x25')]=function(_0x16f64f,_0x41b0db){if(_0x16f64f[_0x0804('0x49')]['id']){delete _0x16f64f[_0x0804('0x49')]['id'];}return db['Schedule'][_0x0804('0x47')]({'where':{'id':_0x16f64f[_0x0804('0x51')]['id']}})['then'](handleEntityNotFound(_0x41b0db,null))[_0x0804('0x26')](saveUpdates(_0x16f64f[_0x0804('0x49')],null))[_0x0804('0x26')](respondWithResult(_0x41b0db,null))[_0x0804('0x46')](handleError(_0x41b0db,null));};exports[_0x0804('0x27')]=function(_0x523309,_0x3bcf78){return db['Schedule'][_0x0804('0x47')]({'where':{'id':_0x523309[_0x0804('0x51')]['id']}})[_0x0804('0x26')](handleEntityNotFound(_0x3bcf78,null))[_0x0804('0x26')](removeEntity(_0x3bcf78,null))['catch'](handleError(_0x3bcf78,null));};exports['run']=function(_0x2ffaaa,_0x16b6e5,_0x50bf39){var _0x3da0d9=require(_0x0804('0x52'));return db[_0x0804('0x2e')][_0x0804('0x47')]({'where':{'id':_0x2ffaaa[_0x0804('0x51')]['id']},'raw':!![]})[_0x0804('0x26')](handleEntityNotFound(_0x16b6e5,null))[_0x0804('0x26')](function(){_0x3da0d9['run'](_0x2ffaaa['params']['id']);})[_0x0804('0x26')](respondWithStatusCode(_0x16b6e5,null))['catch'](handleError(_0x16b6e5,null));};