f220e8f7579cdfdbbae28710cb60b581364f7c6d
[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 _0xa087=['create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','autoAssociation','run','../../config/schedule','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','mustache','path','to-csv','fs-extra','lodash','crypto','jsforce','desk.js','querystring','papaparse','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','limit','undefined','Content-Range','reject','save','update','then','get','Scheduler','UserProfileResource','destroy','error','name','send','map','rawAttributes','fieldName','type','key','model','keys','query','filters','intersection','attributes','fields','hasOwnProperty','nolimit','order','sort','pick','where','VIRTUAL','filter','merge','options','includeAll','include','Schedule','rows','catch','show','params','length','find'];(function(_0x4b055c,_0x4b870b){var _0x4b62bb=function(_0x4884c2){while(--_0x4884c2){_0x4b055c['push'](_0x4b055c['shift']());}};_0x4b62bb(++_0x4b870b);}(_0xa087,0x156));var _0x7a08=function(_0x2bf1ed,_0x5213e3){_0x2bf1ed=_0x2bf1ed-0x0;var _0x13b3a3=_0xa087[_0x2bf1ed];return _0x13b3a3;};'use strict';var emlformat=require(_0x7a08('0x0'));var rimraf=require(_0x7a08('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x7a08('0x2'));var rp=require(_0x7a08('0x3'));var moment=require(_0x7a08('0x4'));var BPromise=require(_0x7a08('0x5'));var Mustache=require(_0x7a08('0x6'));var util=require('util');var path=require(_0x7a08('0x7'));var sox=require('sox');var csv=require(_0x7a08('0x8'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x7a08('0x9'));var _=require(_0x7a08('0xa'));var squel=require('squel');var crypto=require(_0x7a08('0xb'));var jsforce=require(_0x7a08('0xc'));var deskjs=require(_0x7a08('0xd'));var toCsv=require('to-csv');var querystring=require(_0x7a08('0xe'));var Papa=require(_0x7a08('0xf'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0x7a08('0x10'));var as=require(_0x7a08('0x11'));var hardwareService=require(_0x7a08('0x12'));var logger=require(_0x7a08('0x13'))(_0x7a08('0x14'));var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require(_0x7a08('0x15'));var db=require(_0x7a08('0x16'))['db'];function respondWithStatusCode(_0x1d1310,_0x5db8f5){_0x5db8f5=_0x5db8f5||0xcc;return function(_0x116b76){if(_0x116b76){return _0x1d1310[_0x7a08('0x17')](_0x5db8f5);}return _0x1d1310[_0x7a08('0x18')](_0x5db8f5)[_0x7a08('0x19')]();};}function respondWithResult(_0x25dc70,_0x24b908){_0x24b908=_0x24b908||0xc8;return function(_0x1dc8cc){if(_0x1dc8cc){return _0x25dc70['status'](_0x24b908)[_0x7a08('0x1a')](_0x1dc8cc);}};}function respondWithFilteredResult(_0x8ac134,_0x4aac8f){return function(_0x164a4f){if(_0x164a4f){var _0x2c9692=typeof _0x4aac8f[_0x7a08('0x1b')]==='undefined'&&typeof _0x4aac8f[_0x7a08('0x1c')]===_0x7a08('0x1d');var _0x2ad0c8=_0x164a4f['count'];var _0x5bf784=_0x2c9692?0x0:_0x4aac8f[_0x7a08('0x1b')];var _0x16e62d=_0x2c9692?_0x164a4f['count']:_0x4aac8f[_0x7a08('0x1b')]+_0x4aac8f[_0x7a08('0x1c')];var _0x65f5aa;if(_0x16e62d>=_0x2ad0c8){_0x16e62d=_0x2ad0c8;_0x65f5aa=0xc8;}else{_0x65f5aa=0xce;}_0x8ac134[_0x7a08('0x18')](_0x65f5aa);return _0x8ac134['set'](_0x7a08('0x1e'),_0x5bf784+'-'+_0x16e62d+'/'+_0x2ad0c8)[_0x7a08('0x1a')](_0x164a4f);}return null;};}function patchUpdates(_0x28055a){return function(_0x5c079d){try{jsonpatch['apply'](_0x5c079d,_0x28055a,!![]);}catch(_0x89a51e){return BPromise[_0x7a08('0x1f')](_0x89a51e);}return _0x5c079d[_0x7a08('0x20')]();};}function saveUpdates(_0x49c16e,_0x4a1cbf){return function(_0x12ba68){if(_0x12ba68){return _0x12ba68[_0x7a08('0x21')](_0x49c16e)[_0x7a08('0x22')](function(_0x540778){return _0x540778;});}return null;};}function removeEntity(_0x483278,_0x5e9343){return function(_0x3dae81){if(_0x3dae81){return _0x3dae81['destroy']()[_0x7a08('0x22')](function(){var _0x18245b=_0x3dae81[_0x7a08('0x23')]({'plain':!![]});var _0x3c10bd=_0x7a08('0x24');return db[_0x7a08('0x25')][_0x7a08('0x26')]({'where':{'type':_0x3c10bd,'resourceId':_0x18245b['id']}})[_0x7a08('0x22')](function(){return _0x3dae81;});})[_0x7a08('0x22')](function(){_0x483278[_0x7a08('0x18')](0xcc)[_0x7a08('0x19')]();});}};}function handleEntityNotFound(_0x51e199,_0x5bdfea){return function(_0x275740){if(!_0x275740){_0x51e199['sendStatus'](0x194);}return _0x275740;};}function handleError(_0x4b8b9f,_0x24d31e){_0x24d31e=_0x24d31e||0x1f4;return function(_0x17ce75){logger[_0x7a08('0x27')](_0x17ce75['stack']);if(_0x17ce75[_0x7a08('0x28')]){delete _0x17ce75[_0x7a08('0x28')];}_0x4b8b9f['status'](_0x24d31e)[_0x7a08('0x29')](_0x17ce75);};}exports['index']=function(_0xc7647c,_0x161c0f){var _0x4b35ba={},_0x3f5908={},_0x6123f6={'count':0x0,'rows':[]};var _0x12907f=_[_0x7a08('0x2a')](db['Schedule'][_0x7a08('0x2b')],function(_0x278912){return{'name':_0x278912[_0x7a08('0x2c')],'type':_0x278912[_0x7a08('0x2d')][_0x7a08('0x2e')]};});_0x3f5908[_0x7a08('0x2f')]=_[_0x7a08('0x2a')](_0x12907f,_0x7a08('0x28'));_0x3f5908['query']=_[_0x7a08('0x30')](_0xc7647c[_0x7a08('0x31')]);_0x3f5908[_0x7a08('0x32')]=_[_0x7a08('0x33')](_0x3f5908[_0x7a08('0x2f')],_0x3f5908[_0x7a08('0x31')]);_0x4b35ba[_0x7a08('0x34')]=_[_0x7a08('0x33')](_0x3f5908['model'],qs[_0x7a08('0x35')](_0xc7647c['query'][_0x7a08('0x35')]));_0x4b35ba[_0x7a08('0x34')]=_0x4b35ba[_0x7a08('0x34')]['length']?_0x4b35ba['attributes']:_0x3f5908[_0x7a08('0x2f')];if(!_0xc7647c[_0x7a08('0x31')][_0x7a08('0x36')](_0x7a08('0x37'))){_0x4b35ba[_0x7a08('0x1c')]=qs[_0x7a08('0x1c')](_0xc7647c['query'][_0x7a08('0x1c')]);_0x4b35ba[_0x7a08('0x1b')]=qs[_0x7a08('0x1b')](_0xc7647c[_0x7a08('0x31')][_0x7a08('0x1b')]);}_0x4b35ba[_0x7a08('0x38')]=qs[_0x7a08('0x39')](_0xc7647c[_0x7a08('0x31')][_0x7a08('0x39')]);_0x4b35ba['where']=qs[_0x7a08('0x32')](_[_0x7a08('0x3a')](_0xc7647c[_0x7a08('0x31')],_0x3f5908[_0x7a08('0x32')]),_0x12907f);if(_0xc7647c['query']['filter']){_0x4b35ba[_0x7a08('0x3b')]=_['merge'](_0x4b35ba[_0x7a08('0x3b')],{'$or':_[_0x7a08('0x2a')](_0x12907f,function(_0x162fb7){if(_0x162fb7[_0x7a08('0x2d')]!==_0x7a08('0x3c')){var _0xf2bf28={};_0xf2bf28[_0x162fb7['name']]={'$like':'%'+_0xc7647c[_0x7a08('0x31')][_0x7a08('0x3d')]+'%'};return _0xf2bf28;}})});}_0x4b35ba=_[_0x7a08('0x3e')]({},_0x4b35ba,_0xc7647c[_0x7a08('0x3f')]);var _0xf98fe0={'where':_0x4b35ba[_0x7a08('0x3b')]};return db['Schedule']['count'](_0xf98fe0)[_0x7a08('0x22')](function(_0x2be5bf){_0x6123f6['count']=_0x2be5bf;if(_0xc7647c[_0x7a08('0x31')][_0x7a08('0x40')]){_0x4b35ba[_0x7a08('0x41')]=[{'all':!![]}];}return db[_0x7a08('0x42')]['findAll'](_0x4b35ba);})[_0x7a08('0x22')](function(_0x2c6aed){_0x6123f6[_0x7a08('0x43')]=_0x2c6aed;return _0x6123f6;})[_0x7a08('0x22')](respondWithFilteredResult(_0x161c0f,_0x4b35ba))[_0x7a08('0x44')](handleError(_0x161c0f,null));};exports[_0x7a08('0x45')]=function(_0x38b084,_0x108dcb){var _0x5ee8f4={'raw':![],'where':{'id':_0x38b084[_0x7a08('0x46')]['id']}},_0x513bb0={};_0x513bb0[_0x7a08('0x2f')]=_[_0x7a08('0x30')](db[_0x7a08('0x42')][_0x7a08('0x2b')]);_0x513bb0[_0x7a08('0x31')]=_[_0x7a08('0x30')](_0x38b084[_0x7a08('0x31')]);_0x513bb0[_0x7a08('0x32')]=_[_0x7a08('0x33')](_0x513bb0[_0x7a08('0x2f')],_0x513bb0[_0x7a08('0x31')]);_0x5ee8f4[_0x7a08('0x34')]=_['intersection'](_0x513bb0[_0x7a08('0x2f')],qs[_0x7a08('0x35')](_0x38b084[_0x7a08('0x31')][_0x7a08('0x35')]));_0x5ee8f4[_0x7a08('0x34')]=_0x5ee8f4[_0x7a08('0x34')][_0x7a08('0x47')]?_0x5ee8f4[_0x7a08('0x34')]:_0x513bb0[_0x7a08('0x2f')];if(_0x38b084['query']['includeAll']){_0x5ee8f4[_0x7a08('0x41')]=[{'all':!![]}];}_0x5ee8f4=_[_0x7a08('0x3e')]({},_0x5ee8f4,_0x38b084['options']);return db['Schedule'][_0x7a08('0x48')](_0x5ee8f4)[_0x7a08('0x22')](handleEntityNotFound(_0x108dcb,null))[_0x7a08('0x22')](respondWithResult(_0x108dcb,null))[_0x7a08('0x44')](handleError(_0x108dcb,null));};exports[_0x7a08('0x49')]=function(_0xca6aad,_0x3ec605){return db[_0x7a08('0x42')][_0x7a08('0x49')](_0xca6aad[_0x7a08('0x4a')],{})[_0x7a08('0x22')](function(_0x11cba6){var _0x53a2a7=_0xca6aad[_0x7a08('0x4b')][_0x7a08('0x23')]({'plain':!![]});if(!_0x53a2a7)throw new Error(_0x7a08('0x4c'));if(_0x53a2a7[_0x7a08('0x4d')]==='user'){var _0x290229=_0x11cba6[_0x7a08('0x23')]({'plain':!![]});var _0x26c56b=_0x7a08('0x24');return db[_0x7a08('0x4e')][_0x7a08('0x48')]({'where':{'name':_0x26c56b,'userProfileId':_0x53a2a7[_0x7a08('0x4f')]},'raw':!![]})[_0x7a08('0x22')](function(_0x3824f1){if(_0x3824f1&&_0x3824f1[_0x7a08('0x50')]===0x0){return db[_0x7a08('0x25')][_0x7a08('0x49')]({'name':_0x290229[_0x7a08('0x28')],'resourceId':_0x290229['id'],'type':_0x3824f1[_0x7a08('0x28')],'sectionId':_0x3824f1['id']},{})['then'](function(){return _0x11cba6;});}else{return _0x11cba6;}})[_0x7a08('0x44')](function(_0x3f836d){logger['error']('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x3f836d);throw _0x3f836d;});}return _0x11cba6;})[_0x7a08('0x22')](respondWithResult(_0x3ec605,0xc9))['catch'](handleError(_0x3ec605,null));};exports[_0x7a08('0x21')]=function(_0x332831,_0x45228e){if(_0x332831[_0x7a08('0x4a')]['id']){delete _0x332831[_0x7a08('0x4a')]['id'];}return db[_0x7a08('0x42')][_0x7a08('0x48')]({'where':{'id':_0x332831['params']['id']}})[_0x7a08('0x22')](handleEntityNotFound(_0x45228e,null))[_0x7a08('0x22')](saveUpdates(_0x332831[_0x7a08('0x4a')],null))[_0x7a08('0x22')](respondWithResult(_0x45228e,null))[_0x7a08('0x44')](handleError(_0x45228e,null));};exports[_0x7a08('0x26')]=function(_0x1af824,_0x8f4970){return db[_0x7a08('0x42')]['find']({'where':{'id':_0x1af824[_0x7a08('0x46')]['id']}})['then'](handleEntityNotFound(_0x8f4970,null))[_0x7a08('0x22')](removeEntity(_0x8f4970,null))[_0x7a08('0x44')](handleError(_0x8f4970,null));};exports[_0x7a08('0x51')]=function(_0x56ee10,_0x2dfd37,_0x382ef8){var _0x17436d=require(_0x7a08('0x52'));return db[_0x7a08('0x42')][_0x7a08('0x48')]({'where':{'id':_0x56ee10[_0x7a08('0x46')]['id']},'raw':!![]})[_0x7a08('0x22')](handleEntityNotFound(_0x2dfd37,null))[_0x7a08('0x22')](function(){_0x17436d[_0x7a08('0x51')](_0x56ee10['params']['id']);})['then'](respondWithStatusCode(_0x2dfd37,null))['catch'](handleError(_0x2dfd37,null));};