Built motion from commit 9e1399f3.|2.5.37
[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 _0x6644=['Content-Range','apply','reject','save','update','then','destroy','get','Scheduler','UserProfileResource','error','stack','name','send','map','Schedule','fieldName','type','query','keys','filters','intersection','model','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','VIRTUAL','merge','options','include','findAll','rows','catch','show','params','rawAttributes','includeAll','find','create','body','Unable\x20to\x20retrieve\x20the\x20current\x20user','user','UserProfileSection','userProfileId','autoAssociation','run','../../config/schedule','zip-dir','request-promise','moment','bluebird','mustache','util','sox','ejs','lodash','crypto','jsforce','to-csv','querystring','papaparse','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','json','offset','undefined','limit','count'];(function(_0x14b85f,_0x2bcd87){var _0xafd45=function(_0x54f7ed){while(--_0x54f7ed){_0x14b85f['push'](_0x14b85f['shift']());}};_0xafd45(++_0x2bcd87);}(_0x6644,0xde));var _0x4664=function(_0x28e94e,_0x62c50c){_0x28e94e=_0x28e94e-0x0;var _0x11ba23=_0x6644[_0x28e94e];return _0x11ba23;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0x4664('0x0'));var jsonpatch=require('fast-json-patch');var rp=require(_0x4664('0x1'));var moment=require(_0x4664('0x2'));var BPromise=require(_0x4664('0x3'));var Mustache=require(_0x4664('0x4'));var util=require(_0x4664('0x5'));var path=require('path');var sox=require(_0x4664('0x6'));var csv=require('to-csv');var ejs=require(_0x4664('0x7'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x4664('0x8'));var squel=require('squel');var crypto=require(_0x4664('0x9'));var jsforce=require(_0x4664('0xa'));var deskjs=require('desk.js');var toCsv=require(_0x4664('0xb'));var querystring=require(_0x4664('0xc'));var Papa=require(_0x4664('0xd'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0x4664('0xe'));var as=require(_0x4664('0xf'));var hardwareService=require(_0x4664('0x10'));var logger=require(_0x4664('0x11'))(_0x4664('0x12'));var utils=require(_0x4664('0x13'));var config=require(_0x4664('0x14'));var licenseUtil=require(_0x4664('0x15'));var db=require(_0x4664('0x16'))['db'];function respondWithStatusCode(_0x2e083d,_0x3f8449){_0x3f8449=_0x3f8449||0xcc;return function(_0x1a316d){if(_0x1a316d){return _0x2e083d[_0x4664('0x17')](_0x3f8449);}return _0x2e083d['status'](_0x3f8449)['end']();};}function respondWithResult(_0x5b966a,_0x508d95){_0x508d95=_0x508d95||0xc8;return function(_0x226810){if(_0x226810){return _0x5b966a[_0x4664('0x18')](_0x508d95)[_0x4664('0x19')](_0x226810);}};}function respondWithFilteredResult(_0x114a2a,_0x5d8595){return function(_0x24ef61){if(_0x24ef61){var _0xc4dc61=typeof _0x5d8595[_0x4664('0x1a')]===_0x4664('0x1b')&&typeof _0x5d8595[_0x4664('0x1c')]===_0x4664('0x1b');var _0x2388c6=_0x24ef61[_0x4664('0x1d')];var _0x4fdd6b=_0xc4dc61?0x0:_0x5d8595[_0x4664('0x1a')];var _0x44e851=_0xc4dc61?_0x24ef61['count']:_0x5d8595[_0x4664('0x1a')]+_0x5d8595[_0x4664('0x1c')];var _0xf1ea19;if(_0x44e851>=_0x2388c6){_0x44e851=_0x2388c6;_0xf1ea19=0xc8;}else{_0xf1ea19=0xce;}_0x114a2a[_0x4664('0x18')](_0xf1ea19);return _0x114a2a['set'](_0x4664('0x1e'),_0x4fdd6b+'-'+_0x44e851+'/'+_0x2388c6)[_0x4664('0x19')](_0x24ef61);}return null;};}function patchUpdates(_0x206706){return function(_0xbaf96b){try{jsonpatch[_0x4664('0x1f')](_0xbaf96b,_0x206706,!![]);}catch(_0x37c08c){return BPromise[_0x4664('0x20')](_0x37c08c);}return _0xbaf96b[_0x4664('0x21')]();};}function saveUpdates(_0x5129b4,_0xd69d74){return function(_0x1ab0ad){if(_0x1ab0ad){return _0x1ab0ad[_0x4664('0x22')](_0x5129b4)[_0x4664('0x23')](function(_0x4c4757){return _0x4c4757;});}return null;};}function removeEntity(_0x464c73,_0x69d863){return function(_0x1b1de2){if(_0x1b1de2){return _0x1b1de2[_0x4664('0x24')]()[_0x4664('0x23')](function(){var _0x30df71=_0x1b1de2[_0x4664('0x25')]({'plain':!![]});var _0x218cc8=_0x4664('0x26');return db[_0x4664('0x27')][_0x4664('0x24')]({'where':{'type':_0x218cc8,'resourceId':_0x30df71['id']}})[_0x4664('0x23')](function(){return _0x1b1de2;});})[_0x4664('0x23')](function(){_0x464c73[_0x4664('0x18')](0xcc)['end']();});}};}function handleEntityNotFound(_0x7eb3f8,_0x571b63){return function(_0x26d4cc){if(!_0x26d4cc){_0x7eb3f8[_0x4664('0x17')](0x194);}return _0x26d4cc;};}function handleError(_0x30b5ba,_0x5ece44){_0x5ece44=_0x5ece44||0x1f4;return function(_0x3c93c9){logger[_0x4664('0x28')](_0x3c93c9[_0x4664('0x29')]);if(_0x3c93c9[_0x4664('0x2a')]){delete _0x3c93c9[_0x4664('0x2a')];}_0x30b5ba['status'](_0x5ece44)[_0x4664('0x2b')](_0x3c93c9);};}exports['index']=function(_0x582c25,_0x525a86){var _0x27ec8d={},_0x5e9c43={},_0x25a607={'count':0x0,'rows':[]};var _0x152ed1=_[_0x4664('0x2c')](db[_0x4664('0x2d')]['rawAttributes'],function(_0x4c3e74){return{'name':_0x4c3e74[_0x4664('0x2e')],'type':_0x4c3e74[_0x4664('0x2f')]['key']};});_0x5e9c43['model']=_[_0x4664('0x2c')](_0x152ed1,'name');_0x5e9c43[_0x4664('0x30')]=_[_0x4664('0x31')](_0x582c25[_0x4664('0x30')]);_0x5e9c43[_0x4664('0x32')]=_[_0x4664('0x33')](_0x5e9c43[_0x4664('0x34')],_0x5e9c43['query']);_0x27ec8d[_0x4664('0x35')]=_['intersection'](_0x5e9c43['model'],qs[_0x4664('0x36')](_0x582c25[_0x4664('0x30')][_0x4664('0x36')]));_0x27ec8d['attributes']=_0x27ec8d[_0x4664('0x35')][_0x4664('0x37')]?_0x27ec8d[_0x4664('0x35')]:_0x5e9c43[_0x4664('0x34')];if(!_0x582c25[_0x4664('0x30')][_0x4664('0x38')](_0x4664('0x39'))){_0x27ec8d['limit']=qs['limit'](_0x582c25[_0x4664('0x30')]['limit']);_0x27ec8d[_0x4664('0x1a')]=qs['offset'](_0x582c25['query']['offset']);}_0x27ec8d[_0x4664('0x3a')]=qs['sort'](_0x582c25[_0x4664('0x30')][_0x4664('0x3b')]);_0x27ec8d[_0x4664('0x3c')]=qs[_0x4664('0x32')](_[_0x4664('0x3d')](_0x582c25['query'],_0x5e9c43[_0x4664('0x32')]),_0x152ed1);if(_0x582c25[_0x4664('0x30')][_0x4664('0x3e')]){_0x27ec8d[_0x4664('0x3c')]=_['merge'](_0x27ec8d[_0x4664('0x3c')],{'$or':_['map'](_0x152ed1,function(_0x12a693){if(_0x12a693['type']!==_0x4664('0x3f')){var _0x228f4a={};_0x228f4a[_0x12a693[_0x4664('0x2a')]]={'$like':'%'+_0x582c25[_0x4664('0x30')][_0x4664('0x3e')]+'%'};return _0x228f4a;}})});}_0x27ec8d=_[_0x4664('0x40')]({},_0x27ec8d,_0x582c25[_0x4664('0x41')]);var _0x18f5ba={'where':_0x27ec8d[_0x4664('0x3c')]};return db[_0x4664('0x2d')][_0x4664('0x1d')](_0x18f5ba)['then'](function(_0x36c408){_0x25a607[_0x4664('0x1d')]=_0x36c408;if(_0x582c25[_0x4664('0x30')]['includeAll']){_0x27ec8d[_0x4664('0x42')]=[{'all':!![]}];}return db[_0x4664('0x2d')][_0x4664('0x43')](_0x27ec8d);})['then'](function(_0x521ac4){_0x25a607[_0x4664('0x44')]=_0x521ac4;return _0x25a607;})['then'](respondWithFilteredResult(_0x525a86,_0x27ec8d))[_0x4664('0x45')](handleError(_0x525a86,null));};exports[_0x4664('0x46')]=function(_0x17be28,_0x1eee93){var _0x26f197={'raw':![],'where':{'id':_0x17be28[_0x4664('0x47')]['id']}},_0xef3694={};_0xef3694[_0x4664('0x34')]=_['keys'](db[_0x4664('0x2d')][_0x4664('0x48')]);_0xef3694[_0x4664('0x30')]=_[_0x4664('0x31')](_0x17be28[_0x4664('0x30')]);_0xef3694['filters']=_[_0x4664('0x33')](_0xef3694[_0x4664('0x34')],_0xef3694['query']);_0x26f197[_0x4664('0x35')]=_[_0x4664('0x33')](_0xef3694['model'],qs[_0x4664('0x36')](_0x17be28[_0x4664('0x30')][_0x4664('0x36')]));_0x26f197[_0x4664('0x35')]=_0x26f197['attributes'][_0x4664('0x37')]?_0x26f197[_0x4664('0x35')]:_0xef3694[_0x4664('0x34')];if(_0x17be28[_0x4664('0x30')][_0x4664('0x49')]){_0x26f197[_0x4664('0x42')]=[{'all':!![]}];}_0x26f197=_[_0x4664('0x40')]({},_0x26f197,_0x17be28[_0x4664('0x41')]);return db[_0x4664('0x2d')][_0x4664('0x4a')](_0x26f197)['then'](handleEntityNotFound(_0x1eee93,null))[_0x4664('0x23')](respondWithResult(_0x1eee93,null))['catch'](handleError(_0x1eee93,null));};exports[_0x4664('0x4b')]=function(_0x132d2c,_0x2f5ca3){return db[_0x4664('0x2d')][_0x4664('0x4b')](_0x132d2c[_0x4664('0x4c')],{})['then'](function(_0x1aae0b){var _0x5c0754=_0x132d2c['user'][_0x4664('0x25')]({'plain':!![]});if(!_0x5c0754)throw new Error(_0x4664('0x4d'));if(_0x5c0754['role']===_0x4664('0x4e')){var _0x404ae1=_0x1aae0b[_0x4664('0x25')]({'plain':!![]});var _0x35d009='Scheduler';return db[_0x4664('0x4f')][_0x4664('0x4a')]({'where':{'name':_0x35d009,'userProfileId':_0x5c0754[_0x4664('0x50')]},'raw':!![]})['then'](function(_0x369d50){if(_0x369d50&&_0x369d50[_0x4664('0x51')]===0x0){return db[_0x4664('0x27')][_0x4664('0x4b')]({'name':_0x404ae1['name'],'resourceId':_0x404ae1['id'],'type':_0x369d50[_0x4664('0x2a')],'sectionId':_0x369d50['id']},{})[_0x4664('0x23')](function(){return _0x1aae0b;});}else{return _0x1aae0b;}})[_0x4664('0x45')](function(_0x3a356a){logger[_0x4664('0x28')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x3a356a);throw _0x3a356a;});}return _0x1aae0b;})[_0x4664('0x23')](respondWithResult(_0x2f5ca3,0xc9))[_0x4664('0x45')](handleError(_0x2f5ca3,null));};exports[_0x4664('0x22')]=function(_0x4d3215,_0x5a11ab){if(_0x4d3215[_0x4664('0x4c')]['id']){delete _0x4d3215['body']['id'];}return db[_0x4664('0x2d')][_0x4664('0x4a')]({'where':{'id':_0x4d3215[_0x4664('0x47')]['id']}})[_0x4664('0x23')](handleEntityNotFound(_0x5a11ab,null))['then'](saveUpdates(_0x4d3215[_0x4664('0x4c')],null))['then'](respondWithResult(_0x5a11ab,null))[_0x4664('0x45')](handleError(_0x5a11ab,null));};exports[_0x4664('0x24')]=function(_0x1fe4a7,_0x28a904){return db['Schedule'][_0x4664('0x4a')]({'where':{'id':_0x1fe4a7[_0x4664('0x47')]['id']}})[_0x4664('0x23')](handleEntityNotFound(_0x28a904,null))[_0x4664('0x23')](removeEntity(_0x28a904,null))[_0x4664('0x45')](handleError(_0x28a904,null));};exports[_0x4664('0x52')]=function(_0x33f738,_0x1e3b38,_0xf20391){var _0x46bd3d=require(_0x4664('0x53'));return db[_0x4664('0x2d')][_0x4664('0x4a')]({'where':{'id':_0x33f738[_0x4664('0x47')]['id']},'raw':!![]})[_0x4664('0x23')](handleEntityNotFound(_0x1e3b38,null))[_0x4664('0x23')](function(){_0x46bd3d[_0x4664('0x52')](_0x33f738[_0x4664('0x47')]['id']);})[_0x4664('0x23')](respondWithStatusCode(_0x1e3b38,null))['catch'](handleError(_0x1e3b38,null));};