1e77baf7672103267d51b2678c01084948e0b242
[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 _0x6022=['../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','undefined','limit','count','set','apply','save','update','then','destroy','get','UserProfileResource','error','stack','name','send','map','Schedule','rawAttributes','type','key','query','keys','filters','intersection','model','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','options','includeAll','include','findAll','show','params','find','catch','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','Scheduler','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','run','../../config/schedule','rimraf','fast-json-patch','request-promise','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/qs'];(function(_0x381cde,_0x376f06){var _0x4cac66=function(_0x24d1d2){while(--_0x24d1d2){_0x381cde['push'](_0x381cde['shift']());}};_0x4cac66(++_0x376f06);}(_0x6022,0x9c));var _0x2602=function(_0x4ae783,_0xe8d342){_0x4ae783=_0x4ae783-0x0;var _0x41fa0e=_0x6022[_0x4ae783];return _0x41fa0e;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x2602('0x0'));var zipdir=require('zip-dir');var jsonpatch=require(_0x2602('0x1'));var rp=require(_0x2602('0x2'));var moment=require('moment');var BPromise=require(_0x2602('0x3'));var Mustache=require(_0x2602('0x4'));var util=require(_0x2602('0x5'));var path=require(_0x2602('0x6'));var sox=require(_0x2602('0x7'));var csv=require(_0x2602('0x8'));var ejs=require(_0x2602('0x9'));var fs=require('fs');var fs_extra=require(_0x2602('0xa'));var _=require(_0x2602('0xb'));var squel=require(_0x2602('0xc'));var crypto=require(_0x2602('0xd'));var jsforce=require(_0x2602('0xe'));var deskjs=require(_0x2602('0xf'));var toCsv=require(_0x2602('0x8'));var querystring=require(_0x2602('0x10'));var Papa=require(_0x2602('0x11'));var Redis=require('ioredis');var authService=require(_0x2602('0x12'));var qs=require(_0x2602('0x13'));var as=require(_0x2602('0x14'));var hardwareService=require(_0x2602('0x15'));var logger=require('../../config/logger')(_0x2602('0x16'));var utils=require('../../config/utils');var config=require(_0x2602('0x17'));var licenseUtil=require(_0x2602('0x18'));var db=require(_0x2602('0x19'))['db'];function respondWithStatusCode(_0x593beb,_0x422f7e){_0x422f7e=_0x422f7e||0xcc;return function(_0x3fdef9){if(_0x3fdef9){return _0x593beb[_0x2602('0x1a')](_0x422f7e);}return _0x593beb[_0x2602('0x1b')](_0x422f7e)[_0x2602('0x1c')]();};}function respondWithResult(_0x2d1099,_0x254861){_0x254861=_0x254861||0xc8;return function(_0x493f53){if(_0x493f53){return _0x2d1099[_0x2602('0x1b')](_0x254861)[_0x2602('0x1d')](_0x493f53);}};}function respondWithFilteredResult(_0x3e6824,_0x1e0887){return function(_0x592841){if(_0x592841){var _0x59cc06=typeof _0x1e0887[_0x2602('0x1e')]===_0x2602('0x1f')&&typeof _0x1e0887[_0x2602('0x20')]===_0x2602('0x1f');var _0x1b2208=_0x592841[_0x2602('0x21')];var _0xb37ef4=_0x59cc06?0x0:_0x1e0887['offset'];var _0x5e982a=_0x59cc06?_0x592841['count']:_0x1e0887[_0x2602('0x1e')]+_0x1e0887['limit'];var _0xf18da9;if(_0x5e982a>=_0x1b2208){_0x5e982a=_0x1b2208;_0xf18da9=0xc8;}else{_0xf18da9=0xce;}_0x3e6824[_0x2602('0x1b')](_0xf18da9);return _0x3e6824[_0x2602('0x22')]('Content-Range',_0xb37ef4+'-'+_0x5e982a+'/'+_0x1b2208)[_0x2602('0x1d')](_0x592841);}return null;};}function patchUpdates(_0xe6fec7){return function(_0xb3fb52){try{jsonpatch[_0x2602('0x23')](_0xb3fb52,_0xe6fec7,!![]);}catch(_0x52f6ae){return BPromise['reject'](_0x52f6ae);}return _0xb3fb52[_0x2602('0x24')]();};}function saveUpdates(_0x3a0a9b,_0x6e10bc){return function(_0x2d9832){if(_0x2d9832){return _0x2d9832[_0x2602('0x25')](_0x3a0a9b)[_0x2602('0x26')](function(_0x58f73a){return _0x58f73a;});}return null;};}function removeEntity(_0x24a9c0,_0x596154){return function(_0x3b0793){if(_0x3b0793){return _0x3b0793[_0x2602('0x27')]()[_0x2602('0x26')](function(){var _0x40758a=_0x3b0793[_0x2602('0x28')]({'plain':!![]});var _0x5c77bb='Scheduler';return db[_0x2602('0x29')][_0x2602('0x27')]({'where':{'type':_0x5c77bb,'resourceId':_0x40758a['id']}})[_0x2602('0x26')](function(){return _0x3b0793;});})[_0x2602('0x26')](function(){_0x24a9c0['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x5a9faf,_0x3f3346){return function(_0x495635){if(!_0x495635){_0x5a9faf[_0x2602('0x1a')](0x194);}return _0x495635;};}function handleError(_0x3dc0f,_0x140246){_0x140246=_0x140246||0x1f4;return function(_0x26e6d8){logger[_0x2602('0x2a')](_0x26e6d8[_0x2602('0x2b')]);if(_0x26e6d8[_0x2602('0x2c')]){delete _0x26e6d8['name'];}_0x3dc0f[_0x2602('0x1b')](_0x140246)[_0x2602('0x2d')](_0x26e6d8);};}exports['index']=function(_0x2806e3,_0x324f84){var _0x5914f8={},_0x1567e7={},_0xce8fe={'count':0x0,'rows':[]};var _0x2cc193=_[_0x2602('0x2e')](db[_0x2602('0x2f')][_0x2602('0x30')],function(_0x2fb473){return{'name':_0x2fb473['fieldName'],'type':_0x2fb473[_0x2602('0x31')][_0x2602('0x32')]};});_0x1567e7['model']=_['map'](_0x2cc193,_0x2602('0x2c'));_0x1567e7[_0x2602('0x33')]=_[_0x2602('0x34')](_0x2806e3[_0x2602('0x33')]);_0x1567e7[_0x2602('0x35')]=_[_0x2602('0x36')](_0x1567e7[_0x2602('0x37')],_0x1567e7[_0x2602('0x33')]);_0x5914f8[_0x2602('0x38')]=_[_0x2602('0x36')](_0x1567e7[_0x2602('0x37')],qs[_0x2602('0x39')](_0x2806e3[_0x2602('0x33')][_0x2602('0x39')]));_0x5914f8['attributes']=_0x5914f8['attributes'][_0x2602('0x3a')]?_0x5914f8[_0x2602('0x38')]:_0x1567e7['model'];if(!_0x2806e3['query'][_0x2602('0x3b')](_0x2602('0x3c'))){_0x5914f8[_0x2602('0x20')]=qs[_0x2602('0x20')](_0x2806e3[_0x2602('0x33')][_0x2602('0x20')]);_0x5914f8[_0x2602('0x1e')]=qs['offset'](_0x2806e3[_0x2602('0x33')][_0x2602('0x1e')]);}_0x5914f8[_0x2602('0x3d')]=qs[_0x2602('0x3e')](_0x2806e3[_0x2602('0x33')][_0x2602('0x3e')]);_0x5914f8[_0x2602('0x3f')]=qs['filters'](_[_0x2602('0x40')](_0x2806e3[_0x2602('0x33')],_0x1567e7[_0x2602('0x35')]),_0x2cc193);if(_0x2806e3[_0x2602('0x33')][_0x2602('0x41')]){_0x5914f8[_0x2602('0x3f')]=_[_0x2602('0x42')](_0x5914f8[_0x2602('0x3f')],{'$or':_[_0x2602('0x2e')](_0x2cc193,function(_0x257372){if(_0x257372[_0x2602('0x31')]!==_0x2602('0x43')){var _0x221a95={};_0x221a95[_0x257372['name']]={'$like':'%'+_0x2806e3['query'][_0x2602('0x41')]+'%'};return _0x221a95;}})});}_0x5914f8=_[_0x2602('0x42')]({},_0x5914f8,_0x2806e3[_0x2602('0x44')]);var _0x3e287c={'where':_0x5914f8[_0x2602('0x3f')]};return db[_0x2602('0x2f')][_0x2602('0x21')](_0x3e287c)[_0x2602('0x26')](function(_0x9c1acc){_0xce8fe[_0x2602('0x21')]=_0x9c1acc;if(_0x2806e3[_0x2602('0x33')][_0x2602('0x45')]){_0x5914f8[_0x2602('0x46')]=[{'all':!![]}];}return db[_0x2602('0x2f')][_0x2602('0x47')](_0x5914f8);})['then'](function(_0x528b0c){_0xce8fe['rows']=_0x528b0c;return _0xce8fe;})[_0x2602('0x26')](respondWithFilteredResult(_0x324f84,_0x5914f8))['catch'](handleError(_0x324f84,null));};exports[_0x2602('0x48')]=function(_0x5c391a,_0x281364){var _0x25e68f={'raw':![],'where':{'id':_0x5c391a[_0x2602('0x49')]['id']}},_0x3ee861={};_0x3ee861[_0x2602('0x37')]=_['keys'](db[_0x2602('0x2f')][_0x2602('0x30')]);_0x3ee861[_0x2602('0x33')]=_[_0x2602('0x34')](_0x5c391a[_0x2602('0x33')]);_0x3ee861[_0x2602('0x35')]=_[_0x2602('0x36')](_0x3ee861[_0x2602('0x37')],_0x3ee861[_0x2602('0x33')]);_0x25e68f[_0x2602('0x38')]=_[_0x2602('0x36')](_0x3ee861[_0x2602('0x37')],qs[_0x2602('0x39')](_0x5c391a['query'][_0x2602('0x39')]));_0x25e68f['attributes']=_0x25e68f['attributes'][_0x2602('0x3a')]?_0x25e68f['attributes']:_0x3ee861[_0x2602('0x37')];if(_0x5c391a['query'][_0x2602('0x45')]){_0x25e68f['include']=[{'all':!![]}];}_0x25e68f=_['merge']({},_0x25e68f,_0x5c391a[_0x2602('0x44')]);return db['Schedule'][_0x2602('0x4a')](_0x25e68f)[_0x2602('0x26')](handleEntityNotFound(_0x281364,null))[_0x2602('0x26')](respondWithResult(_0x281364,null))[_0x2602('0x4b')](handleError(_0x281364,null));};exports['create']=function(_0x1d7adb,_0x15b4d1){return db[_0x2602('0x2f')][_0x2602('0x4c')](_0x1d7adb[_0x2602('0x4d')],{})['then'](function(_0x28f003){var _0x1b97dd=_0x1d7adb[_0x2602('0x4e')]['get']({'plain':!![]});if(!_0x1b97dd)throw new Error(_0x2602('0x4f'));if(_0x1b97dd[_0x2602('0x50')]===_0x2602('0x4e')){var _0x30c6fa=_0x28f003[_0x2602('0x28')]({'plain':!![]});var _0x5bcb91=_0x2602('0x51');return db[_0x2602('0x52')][_0x2602('0x4a')]({'where':{'name':_0x5bcb91,'userProfileId':_0x1b97dd[_0x2602('0x53')]},'raw':!![]})[_0x2602('0x26')](function(_0x24b65a){if(_0x24b65a&&_0x24b65a[_0x2602('0x54')]===0x0){return db[_0x2602('0x29')][_0x2602('0x4c')]({'name':_0x30c6fa['name'],'resourceId':_0x30c6fa['id'],'type':_0x24b65a['name'],'sectionId':_0x24b65a['id']},{})[_0x2602('0x26')](function(){return _0x28f003;});}else{return _0x28f003;}})['catch'](function(_0x4f7623){logger[_0x2602('0x2a')](_0x2602('0x55'),_0x4f7623);throw _0x4f7623;});}return _0x28f003;})[_0x2602('0x26')](respondWithResult(_0x15b4d1,0xc9))[_0x2602('0x4b')](handleError(_0x15b4d1,null));};exports['update']=function(_0x316626,_0x3e0444){if(_0x316626[_0x2602('0x4d')]['id']){delete _0x316626['body']['id'];}return db[_0x2602('0x2f')][_0x2602('0x4a')]({'where':{'id':_0x316626[_0x2602('0x49')]['id']}})['then'](handleEntityNotFound(_0x3e0444,null))['then'](saveUpdates(_0x316626[_0x2602('0x4d')],null))[_0x2602('0x26')](respondWithResult(_0x3e0444,null))[_0x2602('0x4b')](handleError(_0x3e0444,null));};exports[_0x2602('0x27')]=function(_0xe72ccb,_0x241de6){return db[_0x2602('0x2f')][_0x2602('0x4a')]({'where':{'id':_0xe72ccb['params']['id']}})[_0x2602('0x26')](handleEntityNotFound(_0x241de6,null))[_0x2602('0x26')](removeEntity(_0x241de6,null))[_0x2602('0x4b')](handleError(_0x241de6,null));};exports[_0x2602('0x56')]=function(_0x4d6e56,_0x17b696,_0x4f2d07){var _0x15ac8a=require(_0x2602('0x57'));return db[_0x2602('0x2f')][_0x2602('0x4a')]({'where':{'id':_0x4d6e56['params']['id']},'raw':!![]})[_0x2602('0x26')](handleEntityNotFound(_0x17b696,null))[_0x2602('0x26')](function(){_0x15ac8a[_0x2602('0x56')](_0x4d6e56[_0x2602('0x49')]['id']);})[_0x2602('0x26')](respondWithStatusCode(_0x17b696,null))[_0x2602('0x4b')](handleError(_0x17b696,null));};