Built motion from commit 43538d75.|2.5.35
[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 _0x876e=['../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','json','offset','limit','undefined','count','set','reject','save','update','then','destroy','get','Scheduler','UserProfileResource','end','error','stack','name','send','index','map','Schedule','rawAttributes','fieldName','type','key','model','keys','query','filters','intersection','attributes','fields','length','nolimit','sort','where','pick','filter','merge','VIRTUAL','options','includeAll','include','findAll','rows','params','find','catch','create','body','user','role','UserProfileSection','autoAssociation','run','../../config/schedule','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','path','sox','ejs','lodash','squel','crypto','jsforce','to-csv','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x876e,0xe3));var _0xe876=function(_0x46191d,_0xe4f137){_0x46191d=_0x46191d-0x0;var _0x36e914=_0x876e[_0x46191d];return _0x36e914;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0xe876('0x0'));var jsonpatch=require(_0xe876('0x1'));var rp=require(_0xe876('0x2'));var moment=require(_0xe876('0x3'));var BPromise=require(_0xe876('0x4'));var Mustache=require(_0xe876('0x5'));var util=require('util');var path=require(_0xe876('0x6'));var sox=require(_0xe876('0x7'));var csv=require('to-csv');var ejs=require(_0xe876('0x8'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xe876('0x9'));var squel=require(_0xe876('0xa'));var crypto=require(_0xe876('0xb'));var jsforce=require(_0xe876('0xc'));var deskjs=require('desk.js');var toCsv=require(_0xe876('0xd'));var querystring=require(_0xe876('0xe'));var Papa=require(_0xe876('0xf'));var Redis=require('ioredis');var authService=require(_0xe876('0x10'));var qs=require(_0xe876('0x11'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xe876('0x12'));var logger=require('../../config/logger')('api');var utils=require(_0xe876('0x13'));var config=require(_0xe876('0x14'));var licenseUtil=require(_0xe876('0x15'));var db=require(_0xe876('0x16'))['db'];function respondWithStatusCode(_0x2a67d8,_0x28ddbc){_0x28ddbc=_0x28ddbc||0xcc;return function(_0x3b233a){if(_0x3b233a){return _0x2a67d8[_0xe876('0x17')](_0x28ddbc);}return _0x2a67d8[_0xe876('0x18')](_0x28ddbc)['end']();};}function respondWithResult(_0x220993,_0x26f045){_0x26f045=_0x26f045||0xc8;return function(_0x1d3dfc){if(_0x1d3dfc){return _0x220993['status'](_0x26f045)[_0xe876('0x19')](_0x1d3dfc);}};}function respondWithFilteredResult(_0x5b0966,_0x316ccc){return function(_0x301440){if(_0x301440){var _0x13e8aa=typeof _0x316ccc[_0xe876('0x1a')]==='undefined'&&typeof _0x316ccc[_0xe876('0x1b')]===_0xe876('0x1c');var _0x165fea=_0x301440[_0xe876('0x1d')];var _0x3a545f=_0x13e8aa?0x0:_0x316ccc['offset'];var _0x348632=_0x13e8aa?_0x301440[_0xe876('0x1d')]:_0x316ccc['offset']+_0x316ccc[_0xe876('0x1b')];var _0x13b1f8;if(_0x348632>=_0x165fea){_0x348632=_0x165fea;_0x13b1f8=0xc8;}else{_0x13b1f8=0xce;}_0x5b0966[_0xe876('0x18')](_0x13b1f8);return _0x5b0966[_0xe876('0x1e')]('Content-Range',_0x3a545f+'-'+_0x348632+'/'+_0x165fea)['json'](_0x301440);}return null;};}function patchUpdates(_0x409be6){return function(_0x343b43){try{jsonpatch['apply'](_0x343b43,_0x409be6,!![]);}catch(_0x1441bd){return BPromise[_0xe876('0x1f')](_0x1441bd);}return _0x343b43[_0xe876('0x20')]();};}function saveUpdates(_0x5c4b86,_0x498bfe){return function(_0x3a5276){if(_0x3a5276){return _0x3a5276[_0xe876('0x21')](_0x5c4b86)[_0xe876('0x22')](function(_0x2cdbe2){return _0x2cdbe2;});}return null;};}function removeEntity(_0x22149c,_0x503f0e){return function(_0x3136f5){if(_0x3136f5){return _0x3136f5[_0xe876('0x23')]()[_0xe876('0x22')](function(){var _0x1913cd=_0x3136f5[_0xe876('0x24')]({'plain':!![]});var _0x412adc=_0xe876('0x25');return db[_0xe876('0x26')][_0xe876('0x23')]({'where':{'type':_0x412adc,'resourceId':_0x1913cd['id']}})['then'](function(){return _0x3136f5;});})['then'](function(){_0x22149c[_0xe876('0x18')](0xcc)[_0xe876('0x27')]();});}};}function handleEntityNotFound(_0x361cdf,_0x395d2c){return function(_0x411466){if(!_0x411466){_0x361cdf[_0xe876('0x17')](0x194);}return _0x411466;};}function handleError(_0x3ce98a,_0x50b1ff){_0x50b1ff=_0x50b1ff||0x1f4;return function(_0x56e5d6){logger[_0xe876('0x28')](_0x56e5d6[_0xe876('0x29')]);if(_0x56e5d6[_0xe876('0x2a')]){delete _0x56e5d6[_0xe876('0x2a')];}_0x3ce98a['status'](_0x50b1ff)[_0xe876('0x2b')](_0x56e5d6);};}exports[_0xe876('0x2c')]=function(_0x2430fe,_0x1042d3){var _0x2b0317={},_0x20b27e={},_0x500a06={'count':0x0,'rows':[]};var _0x2e179f=_[_0xe876('0x2d')](db[_0xe876('0x2e')][_0xe876('0x2f')],function(_0x4e6d72){return{'name':_0x4e6d72[_0xe876('0x30')],'type':_0x4e6d72[_0xe876('0x31')][_0xe876('0x32')]};});_0x20b27e[_0xe876('0x33')]=_[_0xe876('0x2d')](_0x2e179f,_0xe876('0x2a'));_0x20b27e['query']=_[_0xe876('0x34')](_0x2430fe[_0xe876('0x35')]);_0x20b27e[_0xe876('0x36')]=_[_0xe876('0x37')](_0x20b27e[_0xe876('0x33')],_0x20b27e[_0xe876('0x35')]);_0x2b0317[_0xe876('0x38')]=_[_0xe876('0x37')](_0x20b27e['model'],qs[_0xe876('0x39')](_0x2430fe[_0xe876('0x35')][_0xe876('0x39')]));_0x2b0317['attributes']=_0x2b0317['attributes'][_0xe876('0x3a')]?_0x2b0317['attributes']:_0x20b27e[_0xe876('0x33')];if(!_0x2430fe[_0xe876('0x35')]['hasOwnProperty'](_0xe876('0x3b'))){_0x2b0317[_0xe876('0x1b')]=qs[_0xe876('0x1b')](_0x2430fe['query'][_0xe876('0x1b')]);_0x2b0317[_0xe876('0x1a')]=qs[_0xe876('0x1a')](_0x2430fe[_0xe876('0x35')][_0xe876('0x1a')]);}_0x2b0317['order']=qs['sort'](_0x2430fe[_0xe876('0x35')][_0xe876('0x3c')]);_0x2b0317[_0xe876('0x3d')]=qs[_0xe876('0x36')](_[_0xe876('0x3e')](_0x2430fe[_0xe876('0x35')],_0x20b27e['filters']),_0x2e179f);if(_0x2430fe[_0xe876('0x35')][_0xe876('0x3f')]){_0x2b0317['where']=_[_0xe876('0x40')](_0x2b0317['where'],{'$or':_[_0xe876('0x2d')](_0x2e179f,function(_0x4cde65){if(_0x4cde65[_0xe876('0x31')]!==_0xe876('0x41')){var _0x3af636={};_0x3af636[_0x4cde65[_0xe876('0x2a')]]={'$like':'%'+_0x2430fe[_0xe876('0x35')][_0xe876('0x3f')]+'%'};return _0x3af636;}})});}_0x2b0317=_[_0xe876('0x40')]({},_0x2b0317,_0x2430fe[_0xe876('0x42')]);var _0x56f4ea={'where':_0x2b0317[_0xe876('0x3d')]};return db[_0xe876('0x2e')][_0xe876('0x1d')](_0x56f4ea)['then'](function(_0x59c8ea){_0x500a06[_0xe876('0x1d')]=_0x59c8ea;if(_0x2430fe[_0xe876('0x35')][_0xe876('0x43')]){_0x2b0317[_0xe876('0x44')]=[{'all':!![]}];}return db[_0xe876('0x2e')][_0xe876('0x45')](_0x2b0317);})['then'](function(_0x4b87da){_0x500a06[_0xe876('0x46')]=_0x4b87da;return _0x500a06;})[_0xe876('0x22')](respondWithFilteredResult(_0x1042d3,_0x2b0317))['catch'](handleError(_0x1042d3,null));};exports['show']=function(_0x392974,_0x249108){var _0x564f01={'raw':![],'where':{'id':_0x392974[_0xe876('0x47')]['id']}},_0x26cdb9={};_0x26cdb9['model']=_['keys'](db['Schedule']['rawAttributes']);_0x26cdb9[_0xe876('0x35')]=_[_0xe876('0x34')](_0x392974[_0xe876('0x35')]);_0x26cdb9['filters']=_[_0xe876('0x37')](_0x26cdb9[_0xe876('0x33')],_0x26cdb9[_0xe876('0x35')]);_0x564f01['attributes']=_[_0xe876('0x37')](_0x26cdb9['model'],qs[_0xe876('0x39')](_0x392974[_0xe876('0x35')][_0xe876('0x39')]));_0x564f01[_0xe876('0x38')]=_0x564f01[_0xe876('0x38')][_0xe876('0x3a')]?_0x564f01[_0xe876('0x38')]:_0x26cdb9['model'];if(_0x392974[_0xe876('0x35')]['includeAll']){_0x564f01[_0xe876('0x44')]=[{'all':!![]}];}_0x564f01=_[_0xe876('0x40')]({},_0x564f01,_0x392974['options']);return db[_0xe876('0x2e')][_0xe876('0x48')](_0x564f01)[_0xe876('0x22')](handleEntityNotFound(_0x249108,null))['then'](respondWithResult(_0x249108,null))[_0xe876('0x49')](handleError(_0x249108,null));};exports[_0xe876('0x4a')]=function(_0x1bd2c5,_0x13d462){return db[_0xe876('0x2e')][_0xe876('0x4a')](_0x1bd2c5[_0xe876('0x4b')],{})['then'](function(_0x1acf34){var _0x244acb=_0x1bd2c5[_0xe876('0x4c')][_0xe876('0x24')]({'plain':!![]});if(!_0x244acb)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x244acb[_0xe876('0x4d')]===_0xe876('0x4c')){var _0x20f087=_0x1acf34[_0xe876('0x24')]({'plain':!![]});var _0x99ded4=_0xe876('0x25');return db[_0xe876('0x4e')][_0xe876('0x48')]({'where':{'name':_0x99ded4,'userProfileId':_0x244acb['userProfileId']},'raw':!![]})['then'](function(_0x47d534){if(_0x47d534&&_0x47d534[_0xe876('0x4f')]===0x0){return db[_0xe876('0x26')]['create']({'name':_0x20f087[_0xe876('0x2a')],'resourceId':_0x20f087['id'],'type':_0x47d534[_0xe876('0x2a')],'sectionId':_0x47d534['id']},{})[_0xe876('0x22')](function(){return _0x1acf34;});}else{return _0x1acf34;}})['catch'](function(_0x31448a){logger[_0xe876('0x28')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x31448a);throw _0x31448a;});}return _0x1acf34;})[_0xe876('0x22')](respondWithResult(_0x13d462,0xc9))[_0xe876('0x49')](handleError(_0x13d462,null));};exports[_0xe876('0x21')]=function(_0x38f350,_0x27f024){if(_0x38f350[_0xe876('0x4b')]['id']){delete _0x38f350[_0xe876('0x4b')]['id'];}return db[_0xe876('0x2e')][_0xe876('0x48')]({'where':{'id':_0x38f350[_0xe876('0x47')]['id']}})[_0xe876('0x22')](handleEntityNotFound(_0x27f024,null))[_0xe876('0x22')](saveUpdates(_0x38f350[_0xe876('0x4b')],null))[_0xe876('0x22')](respondWithResult(_0x27f024,null))[_0xe876('0x49')](handleError(_0x27f024,null));};exports[_0xe876('0x23')]=function(_0x1c326c,_0x22ccd7){return db[_0xe876('0x2e')][_0xe876('0x48')]({'where':{'id':_0x1c326c[_0xe876('0x47')]['id']}})[_0xe876('0x22')](handleEntityNotFound(_0x22ccd7,null))[_0xe876('0x22')](removeEntity(_0x22ccd7,null))[_0xe876('0x49')](handleError(_0x22ccd7,null));};exports[_0xe876('0x50')]=function(_0x553eed,_0x2d2023,_0x4b86ec){var _0x4630f2=require(_0xe876('0x51'));return db[_0xe876('0x2e')]['find']({'where':{'id':_0x553eed[_0xe876('0x47')]['id']},'raw':!![]})[_0xe876('0x22')](handleEntityNotFound(_0x2d2023,null))[_0xe876('0x22')](function(){_0x4630f2[_0xe876('0x50')](_0x553eed['params']['id']);})[_0xe876('0x22')](respondWithStatusCode(_0x2d2023,null))[_0xe876('0x49')](handleError(_0x2d2023,null));};