Built motion from commit 37e1ed56.|2.6.29
[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 _0xebbd=['send','index','map','Schedule','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','fields','attributes','length','nolimit','sort','where','pick','filter','merge','options','then','includeAll','findAll','rows','show','params','include','catch','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','find','autoAssociation','create','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','run','../../config/schedule','eml-format','zip-dir','fast-json-patch','request-promise','bluebird','mustache','path','to-csv','ejs','fs-extra','squel','jsforce','desk.js','papaparse','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','end','status','json','offset','undefined','limit','count','reject','update','destroy','get','Scheduler','UserProfileResource','error','name'];(function(_0x556d5e,_0x851fec){var _0x5be0bd=function(_0x1aee59){while(--_0x1aee59){_0x556d5e['push'](_0x556d5e['shift']());}};_0x5be0bd(++_0x851fec);}(_0xebbd,0x16a));var _0xdebb=function(_0x5b848e,_0x5172b9){_0x5b848e=_0x5b848e-0x0;var _0x381fdb=_0xebbd[_0x5b848e];return _0x381fdb;};'use strict';var emlformat=require(_0xdebb('0x0'));var rimraf=require('rimraf');var zipdir=require(_0xdebb('0x1'));var jsonpatch=require(_0xdebb('0x2'));var rp=require(_0xdebb('0x3'));var moment=require('moment');var BPromise=require(_0xdebb('0x4'));var Mustache=require(_0xdebb('0x5'));var util=require('util');var path=require(_0xdebb('0x6'));var sox=require('sox');var csv=require(_0xdebb('0x7'));var ejs=require(_0xdebb('0x8'));var fs=require('fs');var fs_extra=require(_0xdebb('0x9'));var _=require('lodash');var squel=require(_0xdebb('0xa'));var crypto=require('crypto');var jsforce=require(_0xdebb('0xb'));var deskjs=require(_0xdebb('0xc'));var toCsv=require(_0xdebb('0x7'));var querystring=require('querystring');var Papa=require(_0xdebb('0xd'));var Redis=require('ioredis');var authService=require(_0xdebb('0xe'));var qs=require('../../components/parsers/qs');var as=require(_0xdebb('0xf'));var hardwareService=require(_0xdebb('0x10'));var logger=require('../../config/logger')(_0xdebb('0x11'));var utils=require(_0xdebb('0x12'));var config=require(_0xdebb('0x13'));var licenseUtil=require(_0xdebb('0x14'));var db=require(_0xdebb('0x15'))['db'];function respondWithStatusCode(_0x31bb1c,_0x1ef7a0){_0x1ef7a0=_0x1ef7a0||0xcc;return function(_0x4564a3){if(_0x4564a3){return _0x31bb1c[_0xdebb('0x16')](_0x1ef7a0);}return _0x31bb1c['status'](_0x1ef7a0)[_0xdebb('0x17')]();};}function respondWithResult(_0x233773,_0x465774){_0x465774=_0x465774||0xc8;return function(_0x3e46f5){if(_0x3e46f5){return _0x233773[_0xdebb('0x18')](_0x465774)[_0xdebb('0x19')](_0x3e46f5);}};}function respondWithFilteredResult(_0x43db63,_0x411c3e){return function(_0x559f47){if(_0x559f47){var _0x268f4d=typeof _0x411c3e[_0xdebb('0x1a')]===_0xdebb('0x1b')&&typeof _0x411c3e[_0xdebb('0x1c')]===_0xdebb('0x1b');var _0x1360f2=_0x559f47['count'];var _0x16bc0d=_0x268f4d?0x0:_0x411c3e[_0xdebb('0x1a')];var _0x35b972=_0x268f4d?_0x559f47[_0xdebb('0x1d')]:_0x411c3e[_0xdebb('0x1a')]+_0x411c3e[_0xdebb('0x1c')];var _0x6c7e38;if(_0x35b972>=_0x1360f2){_0x35b972=_0x1360f2;_0x6c7e38=0xc8;}else{_0x6c7e38=0xce;}_0x43db63['status'](_0x6c7e38);return _0x43db63['set']('Content-Range',_0x16bc0d+'-'+_0x35b972+'/'+_0x1360f2)[_0xdebb('0x19')](_0x559f47);}return null;};}function patchUpdates(_0x3bed33){return function(_0x4e032d){try{jsonpatch['apply'](_0x4e032d,_0x3bed33,!![]);}catch(_0x22ab78){return BPromise[_0xdebb('0x1e')](_0x22ab78);}return _0x4e032d['save']();};}function saveUpdates(_0x25d5d6,_0x2323c1){return function(_0x3de224){if(_0x3de224){return _0x3de224[_0xdebb('0x1f')](_0x25d5d6)['then'](function(_0x2e2680){return _0x2e2680;});}return null;};}function removeEntity(_0x13203d,_0x1231e6){return function(_0x3f97f4){if(_0x3f97f4){return _0x3f97f4[_0xdebb('0x20')]()['then'](function(){var _0x5bec81=_0x3f97f4[_0xdebb('0x21')]({'plain':!![]});var _0x34afff=_0xdebb('0x22');return db[_0xdebb('0x23')][_0xdebb('0x20')]({'where':{'type':_0x34afff,'resourceId':_0x5bec81['id']}})['then'](function(){return _0x3f97f4;});})['then'](function(){_0x13203d[_0xdebb('0x18')](0xcc)[_0xdebb('0x17')]();});}};}function handleEntityNotFound(_0x19227f,_0x32f821){return function(_0x421f52){if(!_0x421f52){_0x19227f[_0xdebb('0x16')](0x194);}return _0x421f52;};}function handleError(_0x50a904,_0x89cbe){_0x89cbe=_0x89cbe||0x1f4;return function(_0x23dd89){logger[_0xdebb('0x24')](_0x23dd89['stack']);if(_0x23dd89[_0xdebb('0x25')]){delete _0x23dd89[_0xdebb('0x25')];}_0x50a904['status'](_0x89cbe)[_0xdebb('0x26')](_0x23dd89);};}exports[_0xdebb('0x27')]=function(_0x1cabe0,_0x813299){var _0x336508={},_0x37d228={},_0x5a825f={'count':0x0,'rows':[]};var _0x214151=_[_0xdebb('0x28')](db[_0xdebb('0x29')][_0xdebb('0x2a')],function(_0x4c8a34){return{'name':_0x4c8a34[_0xdebb('0x2b')],'type':_0x4c8a34[_0xdebb('0x2c')][_0xdebb('0x2d')]};});_0x37d228[_0xdebb('0x2e')]=_['map'](_0x214151,'name');_0x37d228[_0xdebb('0x2f')]=_[_0xdebb('0x30')](_0x1cabe0[_0xdebb('0x2f')]);_0x37d228[_0xdebb('0x31')]=_[_0xdebb('0x32')](_0x37d228[_0xdebb('0x2e')],_0x37d228[_0xdebb('0x2f')]);_0x336508['attributes']=_[_0xdebb('0x32')](_0x37d228[_0xdebb('0x2e')],qs[_0xdebb('0x33')](_0x1cabe0[_0xdebb('0x2f')][_0xdebb('0x33')]));_0x336508[_0xdebb('0x34')]=_0x336508['attributes'][_0xdebb('0x35')]?_0x336508['attributes']:_0x37d228['model'];if(!_0x1cabe0[_0xdebb('0x2f')]['hasOwnProperty'](_0xdebb('0x36'))){_0x336508[_0xdebb('0x1c')]=qs['limit'](_0x1cabe0[_0xdebb('0x2f')][_0xdebb('0x1c')]);_0x336508['offset']=qs[_0xdebb('0x1a')](_0x1cabe0[_0xdebb('0x2f')][_0xdebb('0x1a')]);}_0x336508['order']=qs['sort'](_0x1cabe0['query'][_0xdebb('0x37')]);_0x336508[_0xdebb('0x38')]=qs[_0xdebb('0x31')](_[_0xdebb('0x39')](_0x1cabe0[_0xdebb('0x2f')],_0x37d228[_0xdebb('0x31')]),_0x214151);if(_0x1cabe0[_0xdebb('0x2f')][_0xdebb('0x3a')]){_0x336508['where']=_[_0xdebb('0x3b')](_0x336508['where'],{'$or':_['map'](_0x214151,function(_0x581260){if(_0x581260[_0xdebb('0x2c')]!=='VIRTUAL'){var _0xe593dd={};_0xe593dd[_0x581260['name']]={'$like':'%'+_0x1cabe0['query'][_0xdebb('0x3a')]+'%'};return _0xe593dd;}})});}_0x336508=_[_0xdebb('0x3b')]({},_0x336508,_0x1cabe0[_0xdebb('0x3c')]);var _0x981b13={'where':_0x336508[_0xdebb('0x38')]};return db[_0xdebb('0x29')][_0xdebb('0x1d')](_0x981b13)[_0xdebb('0x3d')](function(_0x52f9c4){_0x5a825f['count']=_0x52f9c4;if(_0x1cabe0[_0xdebb('0x2f')][_0xdebb('0x3e')]){_0x336508['include']=[{'all':!![]}];}return db['Schedule'][_0xdebb('0x3f')](_0x336508);})[_0xdebb('0x3d')](function(_0x3f3f62){_0x5a825f[_0xdebb('0x40')]=_0x3f3f62;return _0x5a825f;})[_0xdebb('0x3d')](respondWithFilteredResult(_0x813299,_0x336508))['catch'](handleError(_0x813299,null));};exports[_0xdebb('0x41')]=function(_0x1ad93b,_0x783c8){var _0x541140={'raw':![],'where':{'id':_0x1ad93b[_0xdebb('0x42')]['id']}},_0x2b8071={};_0x2b8071[_0xdebb('0x2e')]=_[_0xdebb('0x30')](db['Schedule'][_0xdebb('0x2a')]);_0x2b8071[_0xdebb('0x2f')]=_['keys'](_0x1ad93b['query']);_0x2b8071[_0xdebb('0x31')]=_[_0xdebb('0x32')](_0x2b8071['model'],_0x2b8071[_0xdebb('0x2f')]);_0x541140[_0xdebb('0x34')]=_[_0xdebb('0x32')](_0x2b8071[_0xdebb('0x2e')],qs[_0xdebb('0x33')](_0x1ad93b[_0xdebb('0x2f')][_0xdebb('0x33')]));_0x541140[_0xdebb('0x34')]=_0x541140['attributes'][_0xdebb('0x35')]?_0x541140[_0xdebb('0x34')]:_0x2b8071[_0xdebb('0x2e')];if(_0x1ad93b[_0xdebb('0x2f')][_0xdebb('0x3e')]){_0x541140[_0xdebb('0x43')]=[{'all':!![]}];}_0x541140=_['merge']({},_0x541140,_0x1ad93b[_0xdebb('0x3c')]);return db[_0xdebb('0x29')]['find'](_0x541140)['then'](handleEntityNotFound(_0x783c8,null))['then'](respondWithResult(_0x783c8,null))[_0xdebb('0x44')](handleError(_0x783c8,null));};exports['create']=function(_0x57f3c7,_0x5eb5ab){return db[_0xdebb('0x29')]['create'](_0x57f3c7[_0xdebb('0x45')],{})[_0xdebb('0x3d')](function(_0x44e110){var _0x1e478d=_0x57f3c7[_0xdebb('0x46')]['get']({'plain':!![]});if(!_0x1e478d)throw new Error(_0xdebb('0x47'));if(_0x1e478d[_0xdebb('0x48')]===_0xdebb('0x46')){var _0x2250e2=_0x44e110[_0xdebb('0x21')]({'plain':!![]});var _0x3abdca=_0xdebb('0x22');return db[_0xdebb('0x49')][_0xdebb('0x4a')]({'where':{'name':_0x3abdca,'userProfileId':_0x1e478d['userProfileId']},'raw':!![]})[_0xdebb('0x3d')](function(_0x13ff95){if(_0x13ff95&&_0x13ff95[_0xdebb('0x4b')]===0x0){return db[_0xdebb('0x23')][_0xdebb('0x4c')]({'name':_0x2250e2[_0xdebb('0x25')],'resourceId':_0x2250e2['id'],'type':_0x13ff95[_0xdebb('0x25')],'sectionId':_0x13ff95['id']},{})[_0xdebb('0x3d')](function(){return _0x44e110;});}else{return _0x44e110;}})[_0xdebb('0x44')](function(_0x4a21da){logger[_0xdebb('0x24')](_0xdebb('0x4d'),_0x4a21da);throw _0x4a21da;});}return _0x44e110;})[_0xdebb('0x3d')](respondWithResult(_0x5eb5ab,0xc9))[_0xdebb('0x44')](handleError(_0x5eb5ab,null));};exports[_0xdebb('0x1f')]=function(_0x4f6e50,_0x5ab1db){if(_0x4f6e50[_0xdebb('0x45')]['id']){delete _0x4f6e50[_0xdebb('0x45')]['id'];}return db['Schedule'][_0xdebb('0x4a')]({'where':{'id':_0x4f6e50['params']['id']}})[_0xdebb('0x3d')](handleEntityNotFound(_0x5ab1db,null))['then'](saveUpdates(_0x4f6e50['body'],null))[_0xdebb('0x3d')](respondWithResult(_0x5ab1db,null))[_0xdebb('0x44')](handleError(_0x5ab1db,null));};exports[_0xdebb('0x20')]=function(_0x30d80a,_0x479f04){return db['Schedule']['find']({'where':{'id':_0x30d80a[_0xdebb('0x42')]['id']}})[_0xdebb('0x3d')](handleEntityNotFound(_0x479f04,null))[_0xdebb('0x3d')](removeEntity(_0x479f04,null))['catch'](handleError(_0x479f04,null));};exports[_0xdebb('0x4e')]=function(_0x37ddfa,_0x473fdf,_0x17929f){var _0xb3a203=require(_0xdebb('0x4f'));return db[_0xdebb('0x29')][_0xdebb('0x4a')]({'where':{'id':_0x37ddfa[_0xdebb('0x42')]['id']},'raw':!![]})['then'](handleEntityNotFound(_0x473fdf,null))['then'](function(){_0xb3a203[_0xdebb('0x4e')](_0x37ddfa[_0xdebb('0x42')]['id']);})[_0xdebb('0x3d')](respondWithStatusCode(_0x473fdf,null))[_0xdebb('0x44')](handleError(_0x473fdf,null));};