336c2464c38bc526dc16b3be8a9233ba3577adec
[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 _0xfb3f=['../../config/environment','../../mysqldb','sendStatus','status','end','json','offset','limit','set','Content-Range','apply','reject','save','update','then','destroy','get','Scheduler','UserProfileResource','error','stack','index','map','Schedule','fieldName','type','model','name','keys','query','intersection','attributes','fields','length','nolimit','sort','where','pick','filter','merge','VIRTUAL','options','count','includeAll','include','catch','show','params','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','UserProfileSection','find','userProfileId','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','run','html-pdf','eml-format','zip-dir','moment','mustache','util','path','sox','to-csv','ejs','lodash','squel','jsforce','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils'];(function(_0x4d51d6,_0x487558){var _0x28a170=function(_0x4bad9d){while(--_0x4bad9d){_0x4d51d6['push'](_0x4d51d6['shift']());}};_0x28a170(++_0x487558);}(_0xfb3f,0xd9));var _0xffb3=function(_0x46734e,_0x41345d){_0x46734e=_0x46734e-0x0;var _0x27b1fa=_0xfb3f[_0x46734e];return _0x27b1fa;};'use strict';var pdf=require(_0xffb3('0x0'));var emlformat=require(_0xffb3('0x1'));var rimraf=require('rimraf');var zipdir=require(_0xffb3('0x2'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0xffb3('0x3'));var BPromise=require('bluebird');var Mustache=require(_0xffb3('0x4'));var util=require(_0xffb3('0x5'));var path=require(_0xffb3('0x6'));var sox=require(_0xffb3('0x7'));var csv=require(_0xffb3('0x8'));var ejs=require(_0xffb3('0x9'));var fs=require('fs');var _=require(_0xffb3('0xa'));var squel=require(_0xffb3('0xb'));var crypto=require('crypto');var jsforce=require(_0xffb3('0xc'));var deskjs=require(_0xffb3('0xd'));var toCsv=require(_0xffb3('0x8'));var querystring=require(_0xffb3('0xe'));var Papa=require(_0xffb3('0xf'));var Redis=require('ioredis');var authService=require(_0xffb3('0x10'));var qs=require(_0xffb3('0x11'));var as=require(_0xffb3('0x12'));var hardwareService=require(_0xffb3('0x13'));var logger=require(_0xffb3('0x14'))(_0xffb3('0x15'));var utils=require(_0xffb3('0x16'));var config=require(_0xffb3('0x17'));var licenseUtil=require('../../config/license/util');var db=require(_0xffb3('0x18'))['db'];function respondWithStatusCode(_0x40c953,_0x55192c){_0x55192c=_0x55192c||0xcc;return function(_0x21924a){if(_0x21924a){return _0x40c953[_0xffb3('0x19')](_0x55192c);}return _0x40c953[_0xffb3('0x1a')](_0x55192c)[_0xffb3('0x1b')]();};}function respondWithResult(_0x65ef59,_0x420156){_0x420156=_0x420156||0xc8;return function(_0x19ce6e){if(_0x19ce6e){return _0x65ef59[_0xffb3('0x1a')](_0x420156)[_0xffb3('0x1c')](_0x19ce6e);}};}function respondWithFilteredResult(_0x3183bd,_0x38daab){return function(_0x2c3ef7){if(_0x2c3ef7){var _0x4d3c48=_0x2c3ef7['count'],_0x46ae17=_0x38daab['offset'],_0x34d09c=_0x38daab[_0xffb3('0x1d')]+_0x38daab[_0xffb3('0x1e')],_0x42b807;if(_0x34d09c>=_0x4d3c48){_0x34d09c=_0x4d3c48;_0x42b807=0xc8;}else{_0x42b807=0xce;}_0x3183bd['status'](_0x42b807);return _0x3183bd[_0xffb3('0x1f')](_0xffb3('0x20'),_0x46ae17+'-'+_0x34d09c+'/'+_0x4d3c48)[_0xffb3('0x1c')](_0x2c3ef7);}return null;};}function patchUpdates(_0x5efd17){return function(_0x2dfb40){try{jsonpatch[_0xffb3('0x21')](_0x2dfb40,_0x5efd17,!![]);}catch(_0x4f54ac){return BPromise[_0xffb3('0x22')](_0x4f54ac);}return _0x2dfb40[_0xffb3('0x23')]();};}function saveUpdates(_0x223ad5,_0x21c9ad){return function(_0x1e75a0){if(_0x1e75a0){return _0x1e75a0[_0xffb3('0x24')](_0x223ad5)[_0xffb3('0x25')](function(_0x5f5655){return _0x5f5655;});}return null;};}function removeEntity(_0x473cff,_0xe4c60e){return function(_0x5e0f48){if(_0x5e0f48){return _0x5e0f48[_0xffb3('0x26')]()['then'](function(){var _0x5b707a=_0x5e0f48[_0xffb3('0x27')]({'plain':!![]});var _0x3d55e6=_0xffb3('0x28');return db[_0xffb3('0x29')][_0xffb3('0x26')]({'where':{'type':_0x3d55e6,'resourceId':_0x5b707a['id']}})[_0xffb3('0x25')](function(){return _0x5e0f48;});})['then'](function(){_0x473cff[_0xffb3('0x1a')](0xcc)['end']();});}};}function handleEntityNotFound(_0x1390c6,_0x2f01ff){return function(_0x5267f7){if(!_0x5267f7){_0x1390c6[_0xffb3('0x19')](0x194);}return _0x5267f7;};}function handleError(_0x5e0474,_0x1eee6b){_0x1eee6b=_0x1eee6b||0x1f4;return function(_0x148ad8){logger[_0xffb3('0x2a')](_0x148ad8[_0xffb3('0x2b')]);if(_0x148ad8['name']){delete _0x148ad8['name'];}_0x5e0474['status'](_0x1eee6b)['send'](_0x148ad8);};}exports[_0xffb3('0x2c')]=function(_0x5d1630,_0x17f601){var _0x3e64bb={},_0x17462d={},_0x28f65d={'count':0x0,'rows':[]};var _0x5a30b5=_[_0xffb3('0x2d')](db[_0xffb3('0x2e')]['rawAttributes'],function(_0x474d85){return{'name':_0x474d85[_0xffb3('0x2f')],'type':_0x474d85[_0xffb3('0x30')]['key']};});_0x17462d[_0xffb3('0x31')]=_[_0xffb3('0x2d')](_0x5a30b5,_0xffb3('0x32'));_0x17462d['query']=_[_0xffb3('0x33')](_0x5d1630[_0xffb3('0x34')]);_0x17462d['filters']=_[_0xffb3('0x35')](_0x17462d[_0xffb3('0x31')],_0x17462d[_0xffb3('0x34')]);_0x3e64bb[_0xffb3('0x36')]=_[_0xffb3('0x35')](_0x17462d['model'],qs[_0xffb3('0x37')](_0x5d1630[_0xffb3('0x34')][_0xffb3('0x37')]));_0x3e64bb['attributes']=_0x3e64bb[_0xffb3('0x36')][_0xffb3('0x38')]?_0x3e64bb['attributes']:_0x17462d[_0xffb3('0x31')];if(!_0x5d1630[_0xffb3('0x34')]['hasOwnProperty'](_0xffb3('0x39'))){_0x3e64bb[_0xffb3('0x1e')]=qs['limit'](_0x5d1630['query']['limit']);_0x3e64bb[_0xffb3('0x1d')]=qs[_0xffb3('0x1d')](_0x5d1630['query'][_0xffb3('0x1d')]);}_0x3e64bb['order']=qs[_0xffb3('0x3a')](_0x5d1630[_0xffb3('0x34')]['sort']);_0x3e64bb[_0xffb3('0x3b')]=qs['filters'](_[_0xffb3('0x3c')](_0x5d1630[_0xffb3('0x34')],_0x17462d['filters']),_0x5a30b5);if(_0x5d1630[_0xffb3('0x34')][_0xffb3('0x3d')]){_0x3e64bb[_0xffb3('0x3b')]=_[_0xffb3('0x3e')](_0x3e64bb[_0xffb3('0x3b')],{'$or':_[_0xffb3('0x2d')](_0x5a30b5,function(_0x19013d){if(_0x19013d[_0xffb3('0x30')]!==_0xffb3('0x3f')){var _0x16982c={};_0x16982c[_0x19013d[_0xffb3('0x32')]]={'$like':'%'+_0x5d1630[_0xffb3('0x34')][_0xffb3('0x3d')]+'%'};return _0x16982c;}})});}_0x3e64bb=_['merge']({},_0x3e64bb,_0x5d1630[_0xffb3('0x40')]);var _0x282431={'where':_0x3e64bb[_0xffb3('0x3b')]};return db['Schedule'][_0xffb3('0x41')](_0x282431)['then'](function(_0x3197f9){_0x28f65d[_0xffb3('0x41')]=_0x3197f9;if(_0x5d1630['query'][_0xffb3('0x42')]){_0x3e64bb[_0xffb3('0x43')]=[{'all':!![]}];}return db['Schedule']['findAll'](_0x3e64bb);})[_0xffb3('0x25')](function(_0x341f1d){_0x28f65d['rows']=_0x341f1d;return _0x28f65d;})[_0xffb3('0x25')](respondWithFilteredResult(_0x17f601,_0x3e64bb))[_0xffb3('0x44')](handleError(_0x17f601,null));};exports[_0xffb3('0x45')]=function(_0x1bfa03,_0x2e8564){var _0x4c2d24={'raw':![],'where':{'id':_0x1bfa03[_0xffb3('0x46')]['id']}},_0xf78b44={};_0xf78b44[_0xffb3('0x31')]=_[_0xffb3('0x33')](db[_0xffb3('0x2e')]['rawAttributes']);_0xf78b44['query']=_[_0xffb3('0x33')](_0x1bfa03[_0xffb3('0x34')]);_0xf78b44['filtears']=_[_0xffb3('0x35')](_0xf78b44[_0xffb3('0x31')],_0xf78b44[_0xffb3('0x34')]);_0x4c2d24[_0xffb3('0x36')]=_['intersection'](_0xf78b44['model'],qs[_0xffb3('0x37')](_0x1bfa03[_0xffb3('0x34')][_0xffb3('0x37')]));_0x4c2d24[_0xffb3('0x36')]=_0x4c2d24[_0xffb3('0x36')][_0xffb3('0x38')]?_0x4c2d24['attributes']:_0xf78b44[_0xffb3('0x31')];if(_0x1bfa03['query'][_0xffb3('0x42')]){_0x4c2d24[_0xffb3('0x43')]=[{'all':!![]}];}_0x4c2d24=_[_0xffb3('0x3e')]({},_0x4c2d24,_0x1bfa03[_0xffb3('0x40')]);return db['Schedule']['find'](_0x4c2d24)[_0xffb3('0x25')](handleEntityNotFound(_0x2e8564,null))['then'](respondWithResult(_0x2e8564,null))[_0xffb3('0x44')](handleError(_0x2e8564,null));};exports[_0xffb3('0x47')]=function(_0x1d542e,_0x4cf0f6){return db[_0xffb3('0x2e')][_0xffb3('0x47')](_0x1d542e[_0xffb3('0x48')],{})[_0xffb3('0x25')](function(_0x2f99ed){var _0x4b0fd3=_0x1d542e[_0xffb3('0x49')][_0xffb3('0x27')]({'plain':!![]});if(!_0x4b0fd3)throw new Error(_0xffb3('0x4a'));if(_0x4b0fd3['role']===_0xffb3('0x49')){var _0x641c4e=_0x2f99ed[_0xffb3('0x27')]({'plain':!![]});var _0x4aacc1=_0xffb3('0x28');return db[_0xffb3('0x4b')][_0xffb3('0x4c')]({'where':{'name':_0x4aacc1,'userProfileId':_0x4b0fd3[_0xffb3('0x4d')]},'raw':!![]})['then'](function(_0x525ecf){if(_0x525ecf&&_0x525ecf['autoAssociation']===0x0){return db['UserProfileResource'][_0xffb3('0x47')]({'name':_0x641c4e['name'],'resourceId':_0x641c4e['id'],'type':_0x525ecf['name'],'sectionId':_0x525ecf['id']},{})[_0xffb3('0x25')](function(){return _0x2f99ed;});}else{return _0x2f99ed;}})[_0xffb3('0x44')](function(_0x2edbce){logger[_0xffb3('0x2a')](_0xffb3('0x4e'),_0x2edbce);throw _0x2edbce;});}return _0x2f99ed;})[_0xffb3('0x25')](respondWithResult(_0x4cf0f6,0xc9))[_0xffb3('0x44')](handleError(_0x4cf0f6,null));};exports['update']=function(_0x29ba96,_0x3d11a0){if(_0x29ba96[_0xffb3('0x48')]['id']){delete _0x29ba96[_0xffb3('0x48')]['id'];}return db[_0xffb3('0x2e')][_0xffb3('0x4c')]({'where':{'id':_0x29ba96['params']['id']}})[_0xffb3('0x25')](handleEntityNotFound(_0x3d11a0,null))[_0xffb3('0x25')](saveUpdates(_0x29ba96['body'],null))['then'](respondWithResult(_0x3d11a0,null))[_0xffb3('0x44')](handleError(_0x3d11a0,null));};exports['destroy']=function(_0x3fc354,_0xc9f558){return db[_0xffb3('0x2e')]['find']({'where':{'id':_0x3fc354['params']['id']}})['then'](handleEntityNotFound(_0xc9f558,null))[_0xffb3('0x25')](removeEntity(_0xc9f558,null))['catch'](handleError(_0xc9f558,null));};exports['run']=function(_0x52311f,_0x3175c7,_0x31658b){var _0xe53c31=require('../../config/schedule');return db[_0xffb3('0x2e')]['find']({'where':{'id':_0x52311f[_0xffb3('0x46')]['id']},'raw':!![]})[_0xffb3('0x25')](handleEntityNotFound(_0x3175c7,null))['then'](function(){_0xe53c31[_0xffb3('0x4f')](_0x52311f[_0xffb3('0x46')]['id']);})[_0xffb3('0x25')](respondWithStatusCode(_0x3175c7,null))[_0xffb3('0x44')](handleError(_0x3175c7,null));};