Built motion from commit (unavailable).|2.2.1
[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 _0x9349=['stack','name','index','Schedule','model','keys','query','dateEnd','filters','intersection','fields','attributes','length','order','sort','where','add','day','dateStart','merge','filter','map','type','VIRTUAL','field','include','findAll','rows','catch','show','params','includeAll','options','find','create','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','autoAssociation','body','run','../../config/schedule','eml-format','rimraf','zip-dir','request-promise','bluebird','mustache','util','path','sox','to-csv','ejs','lodash','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../config/utils','../../config/environment','../../mysqldb','json','offset','limit','status','set','apply','reject','save','update','get','Scheduler','UserProfileResource','destroy','then','sendStatus'];(function(_0x36393a,_0x5f1efc){var _0x3bd34c=function(_0x2eaf09){while(--_0x2eaf09){_0x36393a['push'](_0x36393a['shift']());}};_0x3bd34c(++_0x5f1efc);}(_0x9349,0x16b));var _0x9934=function(_0x2c5e4c,_0x373256){_0x2c5e4c=_0x2c5e4c-0x0;var _0x2f0add=_0x9349[_0x2c5e4c];return _0x2f0add;};'use strict';var pdf=require('html-pdf');var emlformat=require(_0x9934('0x0'));var rimraf=require(_0x9934('0x1'));var zipdir=require(_0x9934('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0x9934('0x3'));var moment=require('moment');var BPromise=require(_0x9934('0x4'));var Mustache=require(_0x9934('0x5'));var util=require(_0x9934('0x6'));var path=require(_0x9934('0x7'));var sox=require(_0x9934('0x8'));var csv=require(_0x9934('0x9'));var ejs=require(_0x9934('0xa'));var fs=require('fs');var _=require(_0x9934('0xb'));var squel=require('squel');var crypto=require(_0x9934('0xc'));var jsforce=require(_0x9934('0xd'));var deskjs=require(_0x9934('0xe'));var toCsv=require(_0x9934('0x9'));var querystring=require(_0x9934('0xf'));var Papa=require(_0x9934('0x10'));var Redis=require(_0x9934('0x11'));var qs=require(_0x9934('0x12'));var logger=require('../../config/logger')('api');var utils=require(_0x9934('0x13'));var config=require(_0x9934('0x14'));var db=require(_0x9934('0x15'))['db'];function respondWithStatusCode(_0x19e4fa,_0x49d93f){_0x49d93f=_0x49d93f||0xcc;return function(_0x2ee391){if(_0x2ee391){return _0x19e4fa['sendStatus'](_0x49d93f);}return _0x19e4fa['status'](_0x49d93f)['end']();};}function respondWithResult(_0x758819,_0x31e645){_0x31e645=_0x31e645||0xc8;return function(_0x2f8ac7){if(_0x2f8ac7){return _0x758819['status'](_0x31e645)[_0x9934('0x16')](_0x2f8ac7);}};}function respondWithFilteredResult(_0x2feea0,_0x39f76a){return function(_0x332133){if(_0x332133){var _0x48f72c=_0x332133['count'],_0xd4e145=_0x39f76a[_0x9934('0x17')],_0x518578=_0x39f76a[_0x9934('0x17')]+_0x39f76a[_0x9934('0x18')],_0x400707;if(_0x518578>=_0x48f72c){_0x518578=_0x48f72c;_0x400707=0xc8;}else{_0x400707=0xce;}_0x2feea0[_0x9934('0x19')](_0x400707);return _0x2feea0[_0x9934('0x1a')]('Content-Range',_0xd4e145+'-'+_0x518578+'/'+_0x48f72c)[_0x9934('0x16')](_0x332133);}return null;};}function patchUpdates(_0x3275a4){return function(_0x3773ec){try{jsonpatch[_0x9934('0x1b')](_0x3773ec,_0x3275a4,!![]);}catch(_0x244cbe){return BPromise[_0x9934('0x1c')](_0x244cbe);}return _0x3773ec[_0x9934('0x1d')]();};}function saveUpdates(_0x11f3f4,_0x3cc7aa){return function(_0xcb26cf){if(_0xcb26cf){return _0xcb26cf[_0x9934('0x1e')](_0x11f3f4)['then'](function(_0x5b2b17){return _0x5b2b17;});}return null;};}function removeEntity(_0x5a06e1,_0x2793ca){return function(_0x39176f){if(_0x39176f){return _0x39176f['destroy']()['then'](function(){var _0x41e516=_0x39176f[_0x9934('0x1f')]({'plain':!![]});var _0x35a665=_0x9934('0x20');return db[_0x9934('0x21')][_0x9934('0x22')]({'where':{'type':_0x35a665,'resourceId':_0x41e516['id']}})[_0x9934('0x23')](function(){return _0x39176f;});})[_0x9934('0x23')](function(){_0x5a06e1[_0x9934('0x19')](0xcc)['end']();});}};}function handleEntityNotFound(_0x5bab89,_0x505396){return function(_0x373dfd){if(!_0x373dfd){_0x5bab89[_0x9934('0x24')](0x194);}return _0x373dfd;};}function handleError(_0x291205,_0x499fc2){_0x499fc2=_0x499fc2||0x1f4;return function(_0x51cdd4){logger['error'](_0x51cdd4[_0x9934('0x25')]);if(_0x51cdd4[_0x9934('0x26')]){delete _0x51cdd4[_0x9934('0x26')];}_0x291205['status'](_0x499fc2)['send'](_0x51cdd4);};}exports[_0x9934('0x27')]=function(_0x1524a2,_0x8e9438){var _0x405af8={},_0x112d66={},_0x4eb7b9={'count':0x0,'rows':[]};var _0x32655b=db[_0x9934('0x28')]['rawAttributes'];_0x112d66[_0x9934('0x29')]=_[_0x9934('0x2a')](_0x32655b);var _0x219344={'dateStart':_0x1524a2[_0x9934('0x2b')]['dateStart'],'dateEnd':_0x1524a2[_0x9934('0x2b')][_0x9934('0x2c')]};delete _0x1524a2[_0x9934('0x2b')]['dateStart'];delete _0x1524a2['query'][_0x9934('0x2c')];_0x112d66[_0x9934('0x2b')]=_[_0x9934('0x2a')](_0x1524a2['query']);_0x112d66[_0x9934('0x2d')]=_['intersection'](_0x112d66[_0x9934('0x29')],_0x112d66[_0x9934('0x2b')]);_0x405af8['attributes']=_[_0x9934('0x2e')](_0x112d66['model'],qs[_0x9934('0x2f')](_0x1524a2['query'][_0x9934('0x2f')]));_0x405af8[_0x9934('0x30')]=_0x405af8['attributes'][_0x9934('0x31')]?_0x405af8['attributes']:_0x112d66['model'];if(!_0x1524a2[_0x9934('0x2b')]['hasOwnProperty']('nolimit')){_0x405af8[_0x9934('0x18')]=qs[_0x9934('0x18')](_0x1524a2[_0x9934('0x2b')][_0x9934('0x18')]);_0x405af8[_0x9934('0x17')]=qs[_0x9934('0x17')](_0x1524a2[_0x9934('0x2b')][_0x9934('0x17')]);}_0x405af8[_0x9934('0x32')]=qs[_0x9934('0x33')](_0x1524a2[_0x9934('0x2b')]['sort']);_0x405af8[_0x9934('0x34')]=qs['filters'](_['pick'](_0x1524a2['query'],_0x112d66[_0x9934('0x2d')]));if(_0x219344['dateStart']){if(_0x219344[_0x9934('0x2c')]){_0x219344['dateEnd']=moment(_0x219344[_0x9934('0x2c')])[_0x9934('0x35')](0x1,_0x9934('0x36'));}else{_0x219344['dateEnd']=moment(_0x219344[_0x9934('0x37')])[_0x9934('0x35')](0x1,_0x9934('0x36'));}_[_0x9934('0x38')](_0x405af8[_0x9934('0x34')],{'createdAt':{'$gte':_0x219344[_0x9934('0x37')],'$lte':_0x219344[_0x9934('0x2c')]}});}if(_0x1524a2[_0x9934('0x2b')][_0x9934('0x39')]){_0x405af8[_0x9934('0x34')]=_[_0x9934('0x38')](_0x405af8[_0x9934('0x34')],{'$or':_[_0x9934('0x3a')](_0x32655b,function(_0x139d3c){if(_0x139d3c[_0x9934('0x3b')]['key']!==_0x9934('0x3c')){var _0x2604da={};_0x2604da[_0x139d3c[_0x9934('0x3d')]]={'$like':'%'+_0x1524a2['query'][_0x9934('0x39')]+'%'};return _0x2604da;}})});}_0x405af8=_[_0x9934('0x38')]({},_0x405af8,_0x1524a2['options']);var _0x1c1e73={'where':_0x405af8[_0x9934('0x34')]};return db[_0x9934('0x28')]['count'](_0x1c1e73)[_0x9934('0x23')](function(_0x3af35e){_0x4eb7b9['count']=_0x3af35e;if(_0x1524a2[_0x9934('0x2b')]['includeAll']){_0x405af8[_0x9934('0x3e')]=[{'all':!![]}];}return db[_0x9934('0x28')][_0x9934('0x3f')](_0x405af8);})[_0x9934('0x23')](function(_0x4318af){_0x4eb7b9[_0x9934('0x40')]=_0x4318af;return _0x4eb7b9;})[_0x9934('0x23')](respondWithFilteredResult(_0x8e9438,_0x405af8))[_0x9934('0x41')](handleError(_0x8e9438,null));};exports[_0x9934('0x42')]=function(_0x4deb9d,_0x22328d){var _0x1f2a94={'raw':![],'where':{'id':_0x4deb9d[_0x9934('0x43')]['id']}},_0x560893={};_0x560893[_0x9934('0x29')]=_['keys'](db['Schedule']['rawAttributes']);_0x560893[_0x9934('0x2b')]=_['keys'](_0x4deb9d['query']);_0x560893[_0x9934('0x2d')]=_['intersection'](_0x560893[_0x9934('0x29')],_0x560893[_0x9934('0x2b')]);_0x1f2a94[_0x9934('0x30')]=_[_0x9934('0x2e')](_0x560893[_0x9934('0x29')],qs[_0x9934('0x2f')](_0x4deb9d['query'][_0x9934('0x2f')]));_0x1f2a94[_0x9934('0x30')]=_0x1f2a94[_0x9934('0x30')][_0x9934('0x31')]?_0x1f2a94[_0x9934('0x30')]:_0x560893[_0x9934('0x29')];if(_0x4deb9d[_0x9934('0x2b')][_0x9934('0x44')]){_0x1f2a94[_0x9934('0x3e')]=[{'all':!![]}];}_0x1f2a94=_[_0x9934('0x38')]({},_0x1f2a94,_0x4deb9d[_0x9934('0x45')]);return db[_0x9934('0x28')][_0x9934('0x46')](_0x1f2a94)[_0x9934('0x23')](handleEntityNotFound(_0x22328d,null))[_0x9934('0x23')](respondWithResult(_0x22328d,null))[_0x9934('0x41')](handleError(_0x22328d,null));};exports[_0x9934('0x47')]=function(_0x1e5d26,_0x506cc7){return db[_0x9934('0x28')][_0x9934('0x47')](_0x1e5d26['body'],{})[_0x9934('0x23')](function(_0x59aa1a){var _0x2b313e=_0x1e5d26[_0x9934('0x48')][_0x9934('0x1f')]({'plain':!![]});if(!_0x2b313e)throw new Error(_0x9934('0x49'));if(_0x2b313e[_0x9934('0x4a')]==='user'){var _0x2fff11=_0x59aa1a[_0x9934('0x1f')]({'plain':!![]});var _0x4a392e=_0x9934('0x20');return db[_0x9934('0x4b')][_0x9934('0x46')]({'where':{'name':_0x4a392e,'userProfileId':_0x2b313e['userProfileId']},'raw':!![]})[_0x9934('0x23')](function(_0x53e648){if(_0x53e648&&_0x53e648[_0x9934('0x4c')]===0x0){return db['UserProfileResource'][_0x9934('0x47')]({'name':_0x2fff11[_0x9934('0x26')],'resourceId':_0x2fff11['id'],'type':_0x53e648['name'],'sectionId':_0x53e648['id']},{})['then'](function(){return _0x59aa1a;});}else{return _0x59aa1a;}})[_0x9934('0x41')](function(_0x15320a){logger['error']('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x15320a);throw _0x15320a;});}return _0x59aa1a;})[_0x9934('0x23')](respondWithResult(_0x506cc7,0xc9))[_0x9934('0x41')](handleError(_0x506cc7,null));};exports[_0x9934('0x1e')]=function(_0x1b2442,_0xe7b27a){if(_0x1b2442[_0x9934('0x4d')]['id']){delete _0x1b2442[_0x9934('0x4d')]['id'];}return db[_0x9934('0x28')][_0x9934('0x46')]({'where':{'id':_0x1b2442['params']['id']}})[_0x9934('0x23')](handleEntityNotFound(_0xe7b27a,null))['then'](saveUpdates(_0x1b2442[_0x9934('0x4d')],null))[_0x9934('0x23')](respondWithResult(_0xe7b27a,null))[_0x9934('0x41')](handleError(_0xe7b27a,null));};exports[_0x9934('0x22')]=function(_0x1f1f7a,_0x4a0e49){return db[_0x9934('0x28')][_0x9934('0x46')]({'where':{'id':_0x1f1f7a[_0x9934('0x43')]['id']}})['then'](handleEntityNotFound(_0x4a0e49,null))[_0x9934('0x23')](removeEntity(_0x4a0e49,null))[_0x9934('0x41')](handleError(_0x4a0e49,null));};exports[_0x9934('0x4e')]=function(_0x3dde78,_0x2819d5,_0x609f8a){var _0x4f486b=require(_0x9934('0x4f'));return db[_0x9934('0x28')][_0x9934('0x46')]({'where':{'id':_0x3dde78[_0x9934('0x43')]['id']},'raw':!![]})[_0x9934('0x23')](handleEntityNotFound(_0x2819d5,null))[_0x9934('0x23')](function(){_0x4f486b[_0x9934('0x4e')](_0x3dde78[_0x9934('0x43')]['id']);})[_0x9934('0x23')](respondWithStatusCode(_0x2819d5,null))['catch'](handleError(_0x2819d5,null));};