Built motion from commit c738b9ac.|2.6.25
[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 _0x0be4=['destroy','Scheduler','UserProfileResource','end','name','send','index','map','fieldName','type','model','keys','query','intersection','fields','attributes','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','options','includeAll','include','Schedule','rows','catch','show','params','rawAttributes','filters','length','create','user','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','UserProfileSection','find','autoAssociation','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','body','run','eml-format','zip-dir','fast-json-patch','request-promise','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/license/util','../../mysqldb','sendStatus','status','offset','undefined','limit','count','set','Content-Range','json','apply','reject','save','then'];(function(_0xdd3240,_0x24b3ae){var _0x3af090=function(_0x36f941){while(--_0x36f941){_0xdd3240['push'](_0xdd3240['shift']());}};_0x3af090(++_0x24b3ae);}(_0x0be4,0x137));var _0x40be=function(_0x31f1b9,_0x583476){_0x31f1b9=_0x31f1b9-0x0;var _0x14559a=_0x0be4[_0x31f1b9];return _0x14559a;};'use strict';var emlformat=require(_0x40be('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x40be('0x1'));var jsonpatch=require(_0x40be('0x2'));var rp=require(_0x40be('0x3'));var moment=require('moment');var BPromise=require(_0x40be('0x4'));var Mustache=require(_0x40be('0x5'));var util=require(_0x40be('0x6'));var path=require(_0x40be('0x7'));var sox=require(_0x40be('0x8'));var csv=require(_0x40be('0x9'));var ejs=require(_0x40be('0xa'));var fs=require('fs');var fs_extra=require(_0x40be('0xb'));var _=require(_0x40be('0xc'));var squel=require(_0x40be('0xd'));var crypto=require(_0x40be('0xe'));var jsforce=require(_0x40be('0xf'));var deskjs=require(_0x40be('0x10'));var toCsv=require(_0x40be('0x9'));var querystring=require(_0x40be('0x11'));var Papa=require(_0x40be('0x12'));var Redis=require(_0x40be('0x13'));var authService=require(_0x40be('0x14'));var qs=require('../../components/parsers/qs');var as=require(_0x40be('0x15'));var hardwareService=require(_0x40be('0x16'));var logger=require(_0x40be('0x17'))(_0x40be('0x18'));var utils=require(_0x40be('0x19'));var config=require('../../config/environment');var licenseUtil=require(_0x40be('0x1a'));var db=require(_0x40be('0x1b'))['db'];function respondWithStatusCode(_0x1ab50e,_0x521f9e){_0x521f9e=_0x521f9e||0xcc;return function(_0x2a94ca){if(_0x2a94ca){return _0x1ab50e[_0x40be('0x1c')](_0x521f9e);}return _0x1ab50e[_0x40be('0x1d')](_0x521f9e)['end']();};}function respondWithResult(_0x2ec118,_0x161f9d){_0x161f9d=_0x161f9d||0xc8;return function(_0x1132ab){if(_0x1132ab){return _0x2ec118[_0x40be('0x1d')](_0x161f9d)['json'](_0x1132ab);}};}function respondWithFilteredResult(_0x3dc330,_0x2a5531){return function(_0x184a3c){if(_0x184a3c){var _0x1c7d80=typeof _0x2a5531[_0x40be('0x1e')]===_0x40be('0x1f')&&typeof _0x2a5531[_0x40be('0x20')]===_0x40be('0x1f');var _0x3b0f9b=_0x184a3c[_0x40be('0x21')];var _0x4f63a3=_0x1c7d80?0x0:_0x2a5531['offset'];var _0x1a74d8=_0x1c7d80?_0x184a3c[_0x40be('0x21')]:_0x2a5531[_0x40be('0x1e')]+_0x2a5531[_0x40be('0x20')];var _0x39a74c;if(_0x1a74d8>=_0x3b0f9b){_0x1a74d8=_0x3b0f9b;_0x39a74c=0xc8;}else{_0x39a74c=0xce;}_0x3dc330[_0x40be('0x1d')](_0x39a74c);return _0x3dc330[_0x40be('0x22')](_0x40be('0x23'),_0x4f63a3+'-'+_0x1a74d8+'/'+_0x3b0f9b)[_0x40be('0x24')](_0x184a3c);}return null;};}function patchUpdates(_0x4234a7){return function(_0x176e12){try{jsonpatch[_0x40be('0x25')](_0x176e12,_0x4234a7,!![]);}catch(_0x3bbfe1){return BPromise[_0x40be('0x26')](_0x3bbfe1);}return _0x176e12[_0x40be('0x27')]();};}function saveUpdates(_0x39bd80,_0x16dee8){return function(_0x477ff8){if(_0x477ff8){return _0x477ff8['update'](_0x39bd80)[_0x40be('0x28')](function(_0x2bef6d){return _0x2bef6d;});}return null;};}function removeEntity(_0x5682b9,_0x5a1f49){return function(_0x7cea35){if(_0x7cea35){return _0x7cea35[_0x40be('0x29')]()[_0x40be('0x28')](function(){var _0x2da4d1=_0x7cea35['get']({'plain':!![]});var _0x21e250=_0x40be('0x2a');return db[_0x40be('0x2b')][_0x40be('0x29')]({'where':{'type':_0x21e250,'resourceId':_0x2da4d1['id']}})[_0x40be('0x28')](function(){return _0x7cea35;});})[_0x40be('0x28')](function(){_0x5682b9[_0x40be('0x1d')](0xcc)[_0x40be('0x2c')]();});}};}function handleEntityNotFound(_0x3ac3bc,_0x460fbe){return function(_0x4989e9){if(!_0x4989e9){_0x3ac3bc[_0x40be('0x1c')](0x194);}return _0x4989e9;};}function handleError(_0x33567f,_0x52be4e){_0x52be4e=_0x52be4e||0x1f4;return function(_0x234c8a){logger['error'](_0x234c8a['stack']);if(_0x234c8a[_0x40be('0x2d')]){delete _0x234c8a[_0x40be('0x2d')];}_0x33567f[_0x40be('0x1d')](_0x52be4e)[_0x40be('0x2e')](_0x234c8a);};}exports[_0x40be('0x2f')]=function(_0x2e183d,_0x36793d){var _0x15c96c={},_0x35269f={},_0x197f89={'count':0x0,'rows':[]};var _0x469906=_[_0x40be('0x30')](db['Schedule']['rawAttributes'],function(_0x4e75ad){return{'name':_0x4e75ad[_0x40be('0x31')],'type':_0x4e75ad[_0x40be('0x32')]['key']};});_0x35269f[_0x40be('0x33')]=_['map'](_0x469906,_0x40be('0x2d'));_0x35269f['query']=_[_0x40be('0x34')](_0x2e183d[_0x40be('0x35')]);_0x35269f['filters']=_['intersection'](_0x35269f['model'],_0x35269f[_0x40be('0x35')]);_0x15c96c['attributes']=_[_0x40be('0x36')](_0x35269f[_0x40be('0x33')],qs[_0x40be('0x37')](_0x2e183d[_0x40be('0x35')][_0x40be('0x37')]));_0x15c96c[_0x40be('0x38')]=_0x15c96c[_0x40be('0x38')]['length']?_0x15c96c[_0x40be('0x38')]:_0x35269f['model'];if(!_0x2e183d[_0x40be('0x35')]['hasOwnProperty'](_0x40be('0x39'))){_0x15c96c[_0x40be('0x20')]=qs[_0x40be('0x20')](_0x2e183d[_0x40be('0x35')][_0x40be('0x20')]);_0x15c96c['offset']=qs['offset'](_0x2e183d[_0x40be('0x35')][_0x40be('0x1e')]);}_0x15c96c[_0x40be('0x3a')]=qs[_0x40be('0x3b')](_0x2e183d[_0x40be('0x35')][_0x40be('0x3b')]);_0x15c96c[_0x40be('0x3c')]=qs['filters'](_[_0x40be('0x3d')](_0x2e183d['query'],_0x35269f['filters']),_0x469906);if(_0x2e183d[_0x40be('0x35')][_0x40be('0x3e')]){_0x15c96c['where']=_[_0x40be('0x3f')](_0x15c96c[_0x40be('0x3c')],{'$or':_[_0x40be('0x30')](_0x469906,function(_0x30b0e5){if(_0x30b0e5[_0x40be('0x32')]!==_0x40be('0x40')){var _0x2cb39a={};_0x2cb39a[_0x30b0e5[_0x40be('0x2d')]]={'$like':'%'+_0x2e183d['query'][_0x40be('0x3e')]+'%'};return _0x2cb39a;}})});}_0x15c96c=_['merge']({},_0x15c96c,_0x2e183d[_0x40be('0x41')]);var _0x73a16e={'where':_0x15c96c[_0x40be('0x3c')]};return db['Schedule'][_0x40be('0x21')](_0x73a16e)[_0x40be('0x28')](function(_0x1c5afe){_0x197f89[_0x40be('0x21')]=_0x1c5afe;if(_0x2e183d[_0x40be('0x35')][_0x40be('0x42')]){_0x15c96c[_0x40be('0x43')]=[{'all':!![]}];}return db[_0x40be('0x44')]['findAll'](_0x15c96c);})[_0x40be('0x28')](function(_0x344be6){_0x197f89[_0x40be('0x45')]=_0x344be6;return _0x197f89;})['then'](respondWithFilteredResult(_0x36793d,_0x15c96c))[_0x40be('0x46')](handleError(_0x36793d,null));};exports[_0x40be('0x47')]=function(_0x398cd2,_0x56162b){var _0x1a5958={'raw':![],'where':{'id':_0x398cd2[_0x40be('0x48')]['id']}},_0x39bc67={};_0x39bc67[_0x40be('0x33')]=_[_0x40be('0x34')](db['Schedule'][_0x40be('0x49')]);_0x39bc67[_0x40be('0x35')]=_['keys'](_0x398cd2[_0x40be('0x35')]);_0x39bc67[_0x40be('0x4a')]=_[_0x40be('0x36')](_0x39bc67['model'],_0x39bc67[_0x40be('0x35')]);_0x1a5958['attributes']=_[_0x40be('0x36')](_0x39bc67['model'],qs['fields'](_0x398cd2[_0x40be('0x35')][_0x40be('0x37')]));_0x1a5958[_0x40be('0x38')]=_0x1a5958[_0x40be('0x38')][_0x40be('0x4b')]?_0x1a5958[_0x40be('0x38')]:_0x39bc67[_0x40be('0x33')];if(_0x398cd2[_0x40be('0x35')]['includeAll']){_0x1a5958[_0x40be('0x43')]=[{'all':!![]}];}_0x1a5958=_[_0x40be('0x3f')]({},_0x1a5958,_0x398cd2[_0x40be('0x41')]);return db['Schedule']['find'](_0x1a5958)[_0x40be('0x28')](handleEntityNotFound(_0x56162b,null))[_0x40be('0x28')](respondWithResult(_0x56162b,null))[_0x40be('0x46')](handleError(_0x56162b,null));};exports[_0x40be('0x4c')]=function(_0x1d7140,_0x5e14b9){return db['Schedule'][_0x40be('0x4c')](_0x1d7140['body'],{})[_0x40be('0x28')](function(_0x573f5f){var _0x33a2dd=_0x1d7140[_0x40be('0x4d')][_0x40be('0x4e')]({'plain':!![]});if(!_0x33a2dd)throw new Error(_0x40be('0x4f'));if(_0x33a2dd['role']===_0x40be('0x4d')){var _0xd5fca1=_0x573f5f[_0x40be('0x4e')]({'plain':!![]});var _0x4916f3='Scheduler';return db[_0x40be('0x50')][_0x40be('0x51')]({'where':{'name':_0x4916f3,'userProfileId':_0x33a2dd['userProfileId']},'raw':!![]})['then'](function(_0x8fa7fc){if(_0x8fa7fc&&_0x8fa7fc[_0x40be('0x52')]===0x0){return db[_0x40be('0x2b')][_0x40be('0x4c')]({'name':_0xd5fca1['name'],'resourceId':_0xd5fca1['id'],'type':_0x8fa7fc[_0x40be('0x2d')],'sectionId':_0x8fa7fc['id']},{})[_0x40be('0x28')](function(){return _0x573f5f;});}else{return _0x573f5f;}})[_0x40be('0x46')](function(_0x19f6d0){logger[_0x40be('0x53')](_0x40be('0x54'),_0x19f6d0);throw _0x19f6d0;});}return _0x573f5f;})['then'](respondWithResult(_0x5e14b9,0xc9))[_0x40be('0x46')](handleError(_0x5e14b9,null));};exports[_0x40be('0x55')]=function(_0x22d3cd,_0x41fd1f){if(_0x22d3cd[_0x40be('0x56')]['id']){delete _0x22d3cd[_0x40be('0x56')]['id'];}return db['Schedule']['find']({'where':{'id':_0x22d3cd[_0x40be('0x48')]['id']}})['then'](handleEntityNotFound(_0x41fd1f,null))[_0x40be('0x28')](saveUpdates(_0x22d3cd['body'],null))[_0x40be('0x28')](respondWithResult(_0x41fd1f,null))['catch'](handleError(_0x41fd1f,null));};exports['destroy']=function(_0x411a53,_0x5c3719){return db[_0x40be('0x44')][_0x40be('0x51')]({'where':{'id':_0x411a53[_0x40be('0x48')]['id']}})['then'](handleEntityNotFound(_0x5c3719,null))['then'](removeEntity(_0x5c3719,null))[_0x40be('0x46')](handleError(_0x5c3719,null));};exports[_0x40be('0x57')]=function(_0x3dccb6,_0x330f72,_0x32d236){var _0x499319=require('../../config/schedule');return db[_0x40be('0x44')][_0x40be('0x51')]({'where':{'id':_0x3dccb6[_0x40be('0x48')]['id']},'raw':!![]})[_0x40be('0x28')](handleEntityNotFound(_0x330f72,null))['then'](function(){_0x499319[_0x40be('0x57')](_0x3dccb6['params']['id']);})[_0x40be('0x28')](respondWithStatusCode(_0x330f72,null))[_0x40be('0x46')](handleError(_0x330f72,null));};