f83a6617e0256b45bf0b771f9f1d83101d356fd7
[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 _0x8fd3=['fieldName','key','model','query','keys','attributes','intersection','length','hasOwnProperty','nolimit','order','sort','filters','filter','where','merge','type','VIRTUAL','options','includeAll','include','findAll','catch','show','params','fields','find','create','body','user','role','UserProfileSection','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','destroy','../../config/schedule','run','html-pdf','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','path','sox','to-csv','ejs','lodash','squel','crypto','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../mysqldb','sendStatus','status','count','offset','limit','Content-Range','json','reject','save','update','then','get','Scheduler','UserProfileResource','end','error','name','map','Schedule','rawAttributes'];(function(_0x1c5b1a,_0x3db3fe){var _0x351b48=function(_0x35e628){while(--_0x35e628){_0x1c5b1a['push'](_0x1c5b1a['shift']());}};_0x351b48(++_0x3db3fe);}(_0x8fd3,0xc9));var _0x38fd=function(_0x9fcc79,_0x1dd477){_0x9fcc79=_0x9fcc79-0x0;var _0x34d975=_0x8fd3[_0x9fcc79];return _0x34d975;};'use strict';var pdf=require(_0x38fd('0x0'));var emlformat=require(_0x38fd('0x1'));var rimraf=require(_0x38fd('0x2'));var zipdir=require('zip-dir');var jsonpatch=require(_0x38fd('0x3'));var rp=require(_0x38fd('0x4'));var moment=require(_0x38fd('0x5'));var BPromise=require(_0x38fd('0x6'));var Mustache=require('mustache');var util=require('util');var path=require(_0x38fd('0x7'));var sox=require(_0x38fd('0x8'));var csv=require(_0x38fd('0x9'));var ejs=require(_0x38fd('0xa'));var fs=require('fs');var _=require(_0x38fd('0xb'));var squel=require(_0x38fd('0xc'));var crypto=require(_0x38fd('0xd'));var jsforce=require('jsforce');var deskjs=require(_0x38fd('0xe'));var toCsv=require(_0x38fd('0x9'));var querystring=require(_0x38fd('0xf'));var Papa=require(_0x38fd('0x10'));var Redis=require(_0x38fd('0x11'));var authService=require(_0x38fd('0x12'));var qs=require(_0x38fd('0x13'));var as=require(_0x38fd('0x14'));var hardwareService=require(_0x38fd('0x15'));var logger=require('../../config/logger')(_0x38fd('0x16'));var utils=require(_0x38fd('0x17'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require(_0x38fd('0x18'))['db'];function respondWithStatusCode(_0x595daf,_0x5c27a8){_0x5c27a8=_0x5c27a8||0xcc;return function(_0x128566){if(_0x128566){return _0x595daf[_0x38fd('0x19')](_0x5c27a8);}return _0x595daf[_0x38fd('0x1a')](_0x5c27a8)['end']();};}function respondWithResult(_0x20a0e5,_0xd8a157){_0xd8a157=_0xd8a157||0xc8;return function(_0x2d5ff0){if(_0x2d5ff0){return _0x20a0e5[_0x38fd('0x1a')](_0xd8a157)['json'](_0x2d5ff0);}};}function respondWithFilteredResult(_0x3514e4,_0x186391){return function(_0x37faa6){if(_0x37faa6){var _0x10f724=_0x37faa6[_0x38fd('0x1b')],_0x45a28c=_0x186391[_0x38fd('0x1c')],_0x1cde83=_0x186391['offset']+_0x186391[_0x38fd('0x1d')],_0x3b1406;if(_0x1cde83>=_0x10f724){_0x1cde83=_0x10f724;_0x3b1406=0xc8;}else{_0x3b1406=0xce;}_0x3514e4[_0x38fd('0x1a')](_0x3b1406);return _0x3514e4['set'](_0x38fd('0x1e'),_0x45a28c+'-'+_0x1cde83+'/'+_0x10f724)[_0x38fd('0x1f')](_0x37faa6);}return null;};}function patchUpdates(_0x7e3c21){return function(_0xc22b0f){try{jsonpatch['apply'](_0xc22b0f,_0x7e3c21,!![]);}catch(_0x39e107){return BPromise[_0x38fd('0x20')](_0x39e107);}return _0xc22b0f[_0x38fd('0x21')]();};}function saveUpdates(_0x523a7a,_0x33822e){return function(_0x4dcc6f){if(_0x4dcc6f){return _0x4dcc6f[_0x38fd('0x22')](_0x523a7a)[_0x38fd('0x23')](function(_0x53aca8){return _0x53aca8;});}return null;};}function removeEntity(_0x88e7b6,_0x23811f){return function(_0x4bb78a){if(_0x4bb78a){return _0x4bb78a['destroy']()[_0x38fd('0x23')](function(){var _0x43123c=_0x4bb78a[_0x38fd('0x24')]({'plain':!![]});var _0x5aab9a=_0x38fd('0x25');return db[_0x38fd('0x26')]['destroy']({'where':{'type':_0x5aab9a,'resourceId':_0x43123c['id']}})[_0x38fd('0x23')](function(){return _0x4bb78a;});})[_0x38fd('0x23')](function(){_0x88e7b6[_0x38fd('0x1a')](0xcc)[_0x38fd('0x27')]();});}};}function handleEntityNotFound(_0x10caa8,_0x289dd1){return function(_0x590250){if(!_0x590250){_0x10caa8[_0x38fd('0x19')](0x194);}return _0x590250;};}function handleError(_0xdaa302,_0x439b4c){_0x439b4c=_0x439b4c||0x1f4;return function(_0x17f2ad){logger[_0x38fd('0x28')](_0x17f2ad['stack']);if(_0x17f2ad[_0x38fd('0x29')]){delete _0x17f2ad[_0x38fd('0x29')];}_0xdaa302[_0x38fd('0x1a')](_0x439b4c)['send'](_0x17f2ad);};}exports['index']=function(_0x57c6a2,_0x4fe64d){var _0x1bcbac={},_0x3fdf99={},_0xf9bb43={'count':0x0,'rows':[]};var _0x4fcb8b=_[_0x38fd('0x2a')](db[_0x38fd('0x2b')][_0x38fd('0x2c')],function(_0x31dbd5){return{'name':_0x31dbd5[_0x38fd('0x2d')],'type':_0x31dbd5['type'][_0x38fd('0x2e')]};});_0x3fdf99[_0x38fd('0x2f')]=_[_0x38fd('0x2a')](_0x4fcb8b,_0x38fd('0x29'));_0x3fdf99[_0x38fd('0x30')]=_[_0x38fd('0x31')](_0x57c6a2[_0x38fd('0x30')]);_0x3fdf99['filters']=_['intersection'](_0x3fdf99[_0x38fd('0x2f')],_0x3fdf99[_0x38fd('0x30')]);_0x1bcbac[_0x38fd('0x32')]=_[_0x38fd('0x33')](_0x3fdf99[_0x38fd('0x2f')],qs['fields'](_0x57c6a2[_0x38fd('0x30')]['fields']));_0x1bcbac[_0x38fd('0x32')]=_0x1bcbac['attributes'][_0x38fd('0x34')]?_0x1bcbac[_0x38fd('0x32')]:_0x3fdf99[_0x38fd('0x2f')];if(!_0x57c6a2[_0x38fd('0x30')][_0x38fd('0x35')](_0x38fd('0x36'))){_0x1bcbac[_0x38fd('0x1d')]=qs[_0x38fd('0x1d')](_0x57c6a2[_0x38fd('0x30')][_0x38fd('0x1d')]);_0x1bcbac[_0x38fd('0x1c')]=qs['offset'](_0x57c6a2[_0x38fd('0x30')][_0x38fd('0x1c')]);}_0x1bcbac[_0x38fd('0x37')]=qs[_0x38fd('0x38')](_0x57c6a2[_0x38fd('0x30')][_0x38fd('0x38')]);_0x1bcbac['where']=qs[_0x38fd('0x39')](_['pick'](_0x57c6a2['query'],_0x3fdf99['filters']),_0x4fcb8b);if(_0x57c6a2['query'][_0x38fd('0x3a')]){_0x1bcbac[_0x38fd('0x3b')]=_[_0x38fd('0x3c')](_0x1bcbac[_0x38fd('0x3b')],{'$or':_[_0x38fd('0x2a')](_0x4fcb8b,function(_0x1df5a6){if(_0x1df5a6[_0x38fd('0x3d')]!==_0x38fd('0x3e')){var _0x16e744={};_0x16e744[_0x1df5a6['name']]={'$like':'%'+_0x57c6a2['query'][_0x38fd('0x3a')]+'%'};return _0x16e744;}})});}_0x1bcbac=_[_0x38fd('0x3c')]({},_0x1bcbac,_0x57c6a2[_0x38fd('0x3f')]);var _0xdfce17={'where':_0x1bcbac[_0x38fd('0x3b')]};return db[_0x38fd('0x2b')][_0x38fd('0x1b')](_0xdfce17)[_0x38fd('0x23')](function(_0x534e7f){_0xf9bb43['count']=_0x534e7f;if(_0x57c6a2['query'][_0x38fd('0x40')]){_0x1bcbac[_0x38fd('0x41')]=[{'all':!![]}];}return db[_0x38fd('0x2b')][_0x38fd('0x42')](_0x1bcbac);})[_0x38fd('0x23')](function(_0x56bb80){_0xf9bb43['rows']=_0x56bb80;return _0xf9bb43;})[_0x38fd('0x23')](respondWithFilteredResult(_0x4fe64d,_0x1bcbac))[_0x38fd('0x43')](handleError(_0x4fe64d,null));};exports[_0x38fd('0x44')]=function(_0x349ff9,_0x5d9288){var _0x2f3fa4={'raw':![],'where':{'id':_0x349ff9[_0x38fd('0x45')]['id']}},_0x3e8225={};_0x3e8225[_0x38fd('0x2f')]=_['keys'](db[_0x38fd('0x2b')][_0x38fd('0x2c')]);_0x3e8225[_0x38fd('0x30')]=_['keys'](_0x349ff9[_0x38fd('0x30')]);_0x3e8225[_0x38fd('0x39')]=_['intersection'](_0x3e8225['model'],_0x3e8225[_0x38fd('0x30')]);_0x2f3fa4[_0x38fd('0x32')]=_[_0x38fd('0x33')](_0x3e8225[_0x38fd('0x2f')],qs[_0x38fd('0x46')](_0x349ff9[_0x38fd('0x30')][_0x38fd('0x46')]));_0x2f3fa4[_0x38fd('0x32')]=_0x2f3fa4['attributes']['length']?_0x2f3fa4[_0x38fd('0x32')]:_0x3e8225[_0x38fd('0x2f')];if(_0x349ff9[_0x38fd('0x30')][_0x38fd('0x40')]){_0x2f3fa4['include']=[{'all':!![]}];}_0x2f3fa4=_[_0x38fd('0x3c')]({},_0x2f3fa4,_0x349ff9[_0x38fd('0x3f')]);return db[_0x38fd('0x2b')][_0x38fd('0x47')](_0x2f3fa4)[_0x38fd('0x23')](handleEntityNotFound(_0x5d9288,null))[_0x38fd('0x23')](respondWithResult(_0x5d9288,null))[_0x38fd('0x43')](handleError(_0x5d9288,null));};exports[_0x38fd('0x48')]=function(_0x378455,_0x1f6b9e){return db[_0x38fd('0x2b')]['create'](_0x378455[_0x38fd('0x49')],{})[_0x38fd('0x23')](function(_0x367c98){var _0x1e0e27=_0x378455[_0x38fd('0x4a')][_0x38fd('0x24')]({'plain':!![]});if(!_0x1e0e27)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x1e0e27[_0x38fd('0x4b')]===_0x38fd('0x4a')){var _0x41f89e=_0x367c98[_0x38fd('0x24')]({'plain':!![]});var _0x75b9a8=_0x38fd('0x25');return db[_0x38fd('0x4c')][_0x38fd('0x47')]({'where':{'name':_0x75b9a8,'userProfileId':_0x1e0e27['userProfileId']},'raw':!![]})[_0x38fd('0x23')](function(_0x4eab0d){if(_0x4eab0d&&_0x4eab0d[_0x38fd('0x4d')]===0x0){return db[_0x38fd('0x26')][_0x38fd('0x48')]({'name':_0x41f89e['name'],'resourceId':_0x41f89e['id'],'type':_0x4eab0d[_0x38fd('0x29')],'sectionId':_0x4eab0d['id']},{})[_0x38fd('0x23')](function(){return _0x367c98;});}else{return _0x367c98;}})[_0x38fd('0x43')](function(_0x49b04c){logger[_0x38fd('0x28')](_0x38fd('0x4e'),_0x49b04c);throw _0x49b04c;});}return _0x367c98;})[_0x38fd('0x23')](respondWithResult(_0x1f6b9e,0xc9))['catch'](handleError(_0x1f6b9e,null));};exports['update']=function(_0xb5a249,_0x45e126){if(_0xb5a249[_0x38fd('0x49')]['id']){delete _0xb5a249['body']['id'];}return db[_0x38fd('0x2b')][_0x38fd('0x47')]({'where':{'id':_0xb5a249[_0x38fd('0x45')]['id']}})[_0x38fd('0x23')](handleEntityNotFound(_0x45e126,null))[_0x38fd('0x23')](saveUpdates(_0xb5a249[_0x38fd('0x49')],null))[_0x38fd('0x23')](respondWithResult(_0x45e126,null))[_0x38fd('0x43')](handleError(_0x45e126,null));};exports[_0x38fd('0x4f')]=function(_0x2219f8,_0x33d959){return db[_0x38fd('0x2b')][_0x38fd('0x47')]({'where':{'id':_0x2219f8[_0x38fd('0x45')]['id']}})[_0x38fd('0x23')](handleEntityNotFound(_0x33d959,null))[_0x38fd('0x23')](removeEntity(_0x33d959,null))[_0x38fd('0x43')](handleError(_0x33d959,null));};exports['run']=function(_0x364a91,_0x58cf0f,_0x59b36d){var _0xb784eb=require(_0x38fd('0x50'));return db[_0x38fd('0x2b')][_0x38fd('0x47')]({'where':{'id':_0x364a91[_0x38fd('0x45')]['id']},'raw':!![]})[_0x38fd('0x23')](handleEntityNotFound(_0x58cf0f,null))['then'](function(){_0xb784eb[_0x38fd('0x51')](_0x364a91[_0x38fd('0x45')]['id']);})[_0x38fd('0x23')](respondWithStatusCode(_0x58cf0f,null))[_0x38fd('0x43')](handleError(_0x58cf0f,null));};