85c66edbd00fd397c5c9361b2c70e51669c2798b
[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 _0x5594=['count','offset','limit','set','apply','reject','destroy','get','error','stack','name','send','index','Schedule','rawAttributes','model','keys','query','filters','intersection','attributes','fields','length','order','sort','where','pick','filter','merge','map','type','field','options','then','include','findAll','rows','show','params','includeAll','catch','create','body','user','Scheduler','UserProfileSection','find','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','run','rimraf','zip-dir','fast-json-patch','moment','bluebird','mustache','util','path','sox','to-csv','ejs','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','sendStatus','status','end','json'];(function(_0x54c59b,_0x388935){var _0x5674eb=function(_0x1b6ae0){while(--_0x1b6ae0){_0x54c59b['push'](_0x54c59b['shift']());}};_0x5674eb(++_0x388935);}(_0x5594,0x173));var _0x4559=function(_0x38da4d,_0x2e0982){_0x38da4d=_0x38da4d-0x0;var _0xbed138=_0x5594[_0x38da4d];return _0xbed138;};'use strict';var pdf=require('html-pdf');var emlformat=require('eml-format');var rimraf=require(_0x4559('0x0'));var zipdir=require(_0x4559('0x1'));var jsonpatch=require(_0x4559('0x2'));var rp=require('request-promise');var moment=require(_0x4559('0x3'));var BPromise=require(_0x4559('0x4'));var Mustache=require(_0x4559('0x5'));var util=require(_0x4559('0x6'));var path=require(_0x4559('0x7'));var sox=require(_0x4559('0x8'));var csv=require(_0x4559('0x9'));var ejs=require(_0x4559('0xa'));var fs=require('fs');var _=require('lodash');var squel=require(_0x4559('0xb'));var crypto=require(_0x4559('0xc'));var jsforce=require(_0x4559('0xd'));var deskjs=require(_0x4559('0xe'));var toCsv=require('to-csv');var querystring=require(_0x4559('0xf'));var Papa=require(_0x4559('0x10'));var Redis=require(_0x4559('0x11'));var authService=require(_0x4559('0x12'));var qs=require(_0x4559('0x13'));var hardwareService=require(_0x4559('0x14'));var logger=require(_0x4559('0x15'))(_0x4559('0x16'));var utils=require(_0x4559('0x17'));var config=require(_0x4559('0x18'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x291827,_0x1a3c38){_0x1a3c38=_0x1a3c38||0xcc;return function(_0x6a39aa){if(_0x6a39aa){return _0x291827[_0x4559('0x19')](_0x1a3c38);}return _0x291827[_0x4559('0x1a')](_0x1a3c38)[_0x4559('0x1b')]();};}function respondWithResult(_0x3b38fe,_0xa5dc09){_0xa5dc09=_0xa5dc09||0xc8;return function(_0x4b418e){if(_0x4b418e){return _0x3b38fe['status'](_0xa5dc09)[_0x4559('0x1c')](_0x4b418e);}};}function respondWithFilteredResult(_0x78c6d0,_0x98cd41){return function(_0xb63354){if(_0xb63354){var _0x2b04b4=_0xb63354[_0x4559('0x1d')],_0x5d7ef9=_0x98cd41[_0x4559('0x1e')],_0x45a1b1=_0x98cd41[_0x4559('0x1e')]+_0x98cd41[_0x4559('0x1f')],_0x222cf8;if(_0x45a1b1>=_0x2b04b4){_0x45a1b1=_0x2b04b4;_0x222cf8=0xc8;}else{_0x222cf8=0xce;}_0x78c6d0[_0x4559('0x1a')](_0x222cf8);return _0x78c6d0[_0x4559('0x20')]('Content-Range',_0x5d7ef9+'-'+_0x45a1b1+'/'+_0x2b04b4)['json'](_0xb63354);}return null;};}function patchUpdates(_0xee0869){return function(_0x349fee){try{jsonpatch[_0x4559('0x21')](_0x349fee,_0xee0869,!![]);}catch(_0xaef369){return BPromise[_0x4559('0x22')](_0xaef369);}return _0x349fee['save']();};}function saveUpdates(_0x333dfd,_0x80c345){return function(_0x40a6c9){if(_0x40a6c9){return _0x40a6c9['update'](_0x333dfd)['then'](function(_0x3eefe1){return _0x3eefe1;});}return null;};}function removeEntity(_0x43ceab,_0x32da19){return function(_0x57dfa1){if(_0x57dfa1){return _0x57dfa1[_0x4559('0x23')]()['then'](function(){var _0xad0c05=_0x57dfa1[_0x4559('0x24')]({'plain':!![]});var _0x2de671='Scheduler';return db['UserProfileResource'][_0x4559('0x23')]({'where':{'type':_0x2de671,'resourceId':_0xad0c05['id']}})['then'](function(){return _0x57dfa1;});})['then'](function(){_0x43ceab[_0x4559('0x1a')](0xcc)[_0x4559('0x1b')]();});}};}function handleEntityNotFound(_0xa3bd27,_0x30c3ca){return function(_0x5eeef1){if(!_0x5eeef1){_0xa3bd27[_0x4559('0x19')](0x194);}return _0x5eeef1;};}function handleError(_0x119435,_0x31de9d){_0x31de9d=_0x31de9d||0x1f4;return function(_0x144796){logger[_0x4559('0x25')](_0x144796[_0x4559('0x26')]);if(_0x144796[_0x4559('0x27')]){delete _0x144796[_0x4559('0x27')];}_0x119435[_0x4559('0x1a')](_0x31de9d)[_0x4559('0x28')](_0x144796);};}exports[_0x4559('0x29')]=function(_0x2d2925,_0x366161){var _0x37aef8={},_0x4e28c8={},_0x485a84={'count':0x0,'rows':[]};var _0x17fd57=db[_0x4559('0x2a')][_0x4559('0x2b')];_0x4e28c8[_0x4559('0x2c')]=_[_0x4559('0x2d')](_0x17fd57);_0x4e28c8['query']=_[_0x4559('0x2d')](_0x2d2925[_0x4559('0x2e')]);_0x4e28c8[_0x4559('0x2f')]=_[_0x4559('0x30')](_0x4e28c8[_0x4559('0x2c')],_0x4e28c8[_0x4559('0x2e')]);_0x37aef8[_0x4559('0x31')]=_[_0x4559('0x30')](_0x4e28c8[_0x4559('0x2c')],qs[_0x4559('0x32')](_0x2d2925[_0x4559('0x2e')][_0x4559('0x32')]));_0x37aef8['attributes']=_0x37aef8[_0x4559('0x31')][_0x4559('0x33')]?_0x37aef8['attributes']:_0x4e28c8[_0x4559('0x2c')];if(!_0x2d2925[_0x4559('0x2e')]['hasOwnProperty']('nolimit')){_0x37aef8[_0x4559('0x1f')]=qs[_0x4559('0x1f')](_0x2d2925['query'][_0x4559('0x1f')]);_0x37aef8[_0x4559('0x1e')]=qs[_0x4559('0x1e')](_0x2d2925[_0x4559('0x2e')][_0x4559('0x1e')]);}_0x37aef8[_0x4559('0x34')]=qs['sort'](_0x2d2925[_0x4559('0x2e')][_0x4559('0x35')]);_0x37aef8[_0x4559('0x36')]=qs[_0x4559('0x2f')](_[_0x4559('0x37')](_0x2d2925[_0x4559('0x2e')],_0x4e28c8[_0x4559('0x2f')]));if(_0x2d2925[_0x4559('0x2e')][_0x4559('0x38')]){_0x37aef8[_0x4559('0x36')]=_[_0x4559('0x39')](_0x37aef8['where'],{'$or':_[_0x4559('0x3a')](_0x17fd57,function(_0x5b6eaa){if(_0x5b6eaa[_0x4559('0x3b')]['key']!=='VIRTUAL'){var _0x2776bd={};_0x2776bd[_0x5b6eaa[_0x4559('0x3c')]]={'$like':'%'+_0x2d2925[_0x4559('0x2e')][_0x4559('0x38')]+'%'};return _0x2776bd;}})});}_0x37aef8=_[_0x4559('0x39')]({},_0x37aef8,_0x2d2925[_0x4559('0x3d')]);var _0x2ff901={'where':_0x37aef8['where']};return db['Schedule'][_0x4559('0x1d')](_0x2ff901)[_0x4559('0x3e')](function(_0x48ca3d){_0x485a84[_0x4559('0x1d')]=_0x48ca3d;if(_0x2d2925[_0x4559('0x2e')]['includeAll']){_0x37aef8[_0x4559('0x3f')]=[{'all':!![]}];}return db[_0x4559('0x2a')][_0x4559('0x40')](_0x37aef8);})['then'](function(_0x86fa06){_0x485a84[_0x4559('0x41')]=_0x86fa06;return _0x485a84;})[_0x4559('0x3e')](respondWithFilteredResult(_0x366161,_0x37aef8))['catch'](handleError(_0x366161,null));};exports[_0x4559('0x42')]=function(_0x5cf45b,_0x2f09ab){var _0x219ffa={'raw':![],'where':{'id':_0x5cf45b[_0x4559('0x43')]['id']}},_0x1b928f={};_0x1b928f[_0x4559('0x2c')]=_['keys'](db[_0x4559('0x2a')][_0x4559('0x2b')]);_0x1b928f[_0x4559('0x2e')]=_['keys'](_0x5cf45b[_0x4559('0x2e')]);_0x1b928f[_0x4559('0x2f')]=_[_0x4559('0x30')](_0x1b928f[_0x4559('0x2c')],_0x1b928f[_0x4559('0x2e')]);_0x219ffa[_0x4559('0x31')]=_[_0x4559('0x30')](_0x1b928f[_0x4559('0x2c')],qs[_0x4559('0x32')](_0x5cf45b[_0x4559('0x2e')][_0x4559('0x32')]));_0x219ffa[_0x4559('0x31')]=_0x219ffa[_0x4559('0x31')][_0x4559('0x33')]?_0x219ffa[_0x4559('0x31')]:_0x1b928f[_0x4559('0x2c')];if(_0x5cf45b['query'][_0x4559('0x44')]){_0x219ffa[_0x4559('0x3f')]=[{'all':!![]}];}_0x219ffa=_['merge']({},_0x219ffa,_0x5cf45b[_0x4559('0x3d')]);return db[_0x4559('0x2a')]['find'](_0x219ffa)['then'](handleEntityNotFound(_0x2f09ab,null))['then'](respondWithResult(_0x2f09ab,null))[_0x4559('0x45')](handleError(_0x2f09ab,null));};exports[_0x4559('0x46')]=function(_0x5e232b,_0x18e368){return db[_0x4559('0x2a')][_0x4559('0x46')](_0x5e232b[_0x4559('0x47')],{})[_0x4559('0x3e')](function(_0x3859b7){var _0x2d3285=_0x5e232b[_0x4559('0x48')][_0x4559('0x24')]({'plain':!![]});if(!_0x2d3285)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x2d3285['role']==='user'){var _0x283741=_0x3859b7[_0x4559('0x24')]({'plain':!![]});var _0x5f59c8=_0x4559('0x49');return db[_0x4559('0x4a')][_0x4559('0x4b')]({'where':{'name':_0x5f59c8,'userProfileId':_0x2d3285['userProfileId']},'raw':!![]})['then'](function(_0x2e3fc3){if(_0x2e3fc3&&_0x2e3fc3[_0x4559('0x4c')]===0x0){return db['UserProfileResource'][_0x4559('0x46')]({'name':_0x283741['name'],'resourceId':_0x283741['id'],'type':_0x2e3fc3[_0x4559('0x27')],'sectionId':_0x2e3fc3['id']},{})[_0x4559('0x3e')](function(){return _0x3859b7;});}else{return _0x3859b7;}})[_0x4559('0x45')](function(_0x2976ce){logger[_0x4559('0x25')](_0x4559('0x4d'),_0x2976ce);throw _0x2976ce;});}return _0x3859b7;})[_0x4559('0x3e')](respondWithResult(_0x18e368,0xc9))['catch'](handleError(_0x18e368,null));};exports[_0x4559('0x4e')]=function(_0x20325a,_0x124936){if(_0x20325a['body']['id']){delete _0x20325a['body']['id'];}return db['Schedule']['find']({'where':{'id':_0x20325a[_0x4559('0x43')]['id']}})[_0x4559('0x3e')](handleEntityNotFound(_0x124936,null))['then'](saveUpdates(_0x20325a[_0x4559('0x47')],null))[_0x4559('0x3e')](respondWithResult(_0x124936,null))[_0x4559('0x45')](handleError(_0x124936,null));};exports[_0x4559('0x23')]=function(_0x3d3532,_0xae46d0){return db['Schedule']['find']({'where':{'id':_0x3d3532[_0x4559('0x43')]['id']}})[_0x4559('0x3e')](handleEntityNotFound(_0xae46d0,null))[_0x4559('0x3e')](removeEntity(_0xae46d0,null))[_0x4559('0x45')](handleError(_0xae46d0,null));};exports[_0x4559('0x4f')]=function(_0x1ea3c8,_0x1b2d7b,_0x10ca65){var _0xffc637=require('../../config/schedule');return db[_0x4559('0x2a')][_0x4559('0x4b')]({'where':{'id':_0x1ea3c8[_0x4559('0x43')]['id']},'raw':!![]})['then'](handleEntityNotFound(_0x1b2d7b,null))[_0x4559('0x3e')](function(){_0xffc637[_0x4559('0x4f')](_0x1ea3c8[_0x4559('0x43')]['id']);})[_0x4559('0x3e')](respondWithStatusCode(_0x1b2d7b,null))[_0x4559('0x45')](handleError(_0x1b2d7b,null));};