95561385b08d24a3de29328b81a16e3bc93fd0c5
[motion2.git] / server / api / interval / interval.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 _0xe4aa=['getIntervals','findOne','nolimit','addIntervals','sequelize','transaction','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','path','sox','ejs','fs-extra','lodash','crypto','jsforce','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/environment','../../config/license/util','../../mysqldb','../../components/extensions/rewrite','sendStatus','end','json','offset','limit','count','set','reject','save','then','destroy','Intervals','UserProfileResource','status','error','stack','name','index','map','Interval','rawAttributes','type','key','query','keys','intersection','model','attributes','fields','order','sort','where','filters','pick','filter','merge','VIRTUAL','options','includeAll','include','findAll','show','params','length','find','catch','create','body','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','user','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','addInterval','IntervalId'];(function(_0x24d760,_0x172a4f){var _0x299dad=function(_0x8815e){while(--_0x8815e){_0x24d760['push'](_0x24d760['shift']());}};_0x299dad(++_0x172a4f);}(_0xe4aa,0xbc));var _0xae4a=function(_0x213e99,_0x262492){_0x213e99=_0x213e99-0x0;var _0x25c578=_0xe4aa[_0x213e99];return _0x25c578;};'use strict';var emlformat=require(_0xae4a('0x0'));var rimraf=require(_0xae4a('0x1'));var zipdir=require(_0xae4a('0x2'));var jsonpatch=require(_0xae4a('0x3'));var rp=require(_0xae4a('0x4'));var moment=require(_0xae4a('0x5'));var BPromise=require(_0xae4a('0x6'));var Mustache=require(_0xae4a('0x7'));var util=require('util');var path=require(_0xae4a('0x8'));var sox=require(_0xae4a('0x9'));var csv=require('to-csv');var ejs=require(_0xae4a('0xa'));var fs=require('fs');var fs_extra=require(_0xae4a('0xb'));var _=require(_0xae4a('0xc'));var squel=require('squel');var crypto=require(_0xae4a('0xd'));var jsforce=require(_0xae4a('0xe'));var deskjs=require('desk.js');var toCsv=require(_0xae4a('0xf'));var querystring=require(_0xae4a('0x10'));var Papa=require(_0xae4a('0x11'));var Redis=require(_0xae4a('0x12'));var authService=require(_0xae4a('0x13'));var qs=require(_0xae4a('0x14'));var as=require(_0xae4a('0x15'));var hardwareService=require(_0xae4a('0x16'));var logger=require('../../config/logger')(_0xae4a('0x17'));var utils=require('../../config/utils');var config=require(_0xae4a('0x18'));var licenseUtil=require(_0xae4a('0x19'));var db=require(_0xae4a('0x1a'))['db'];var extensions=require(_0xae4a('0x1b'));function respondWithStatusCode(_0x3a0bee,_0xe927ad){_0xe927ad=_0xe927ad||0xcc;return function(_0x51b357){if(_0x51b357){return _0x3a0bee[_0xae4a('0x1c')](_0xe927ad);}return _0x3a0bee['status'](_0xe927ad)[_0xae4a('0x1d')]();};}function respondWithResult(_0x49c13c,_0x541ebc){_0x541ebc=_0x541ebc||0xc8;return function(_0x397e54){if(_0x397e54){return _0x49c13c['status'](_0x541ebc)[_0xae4a('0x1e')](_0x397e54);}};}function respondWithFilteredResult(_0x2eb9a8,_0x5789c0){return function(_0x1b5783){if(_0x1b5783){var _0x393a3b=typeof _0x5789c0[_0xae4a('0x1f')]==='undefined'&&typeof _0x5789c0[_0xae4a('0x20')]==='undefined';var _0x581cad=_0x1b5783[_0xae4a('0x21')];var _0x29d182=_0x393a3b?0x0:_0x5789c0[_0xae4a('0x1f')];var _0x46e5fb=_0x393a3b?_0x1b5783[_0xae4a('0x21')]:_0x5789c0[_0xae4a('0x1f')]+_0x5789c0['limit'];var _0x3c0bff;if(_0x46e5fb>=_0x581cad){_0x46e5fb=_0x581cad;_0x3c0bff=0xc8;}else{_0x3c0bff=0xce;}_0x2eb9a8['status'](_0x3c0bff);return _0x2eb9a8[_0xae4a('0x22')]('Content-Range',_0x29d182+'-'+_0x46e5fb+'/'+_0x581cad)['json'](_0x1b5783);}return null;};}function patchUpdates(_0x16dc8e){return function(_0x1141d0){try{jsonpatch['apply'](_0x1141d0,_0x16dc8e,!![]);}catch(_0x39f086){return BPromise[_0xae4a('0x23')](_0x39f086);}return _0x1141d0[_0xae4a('0x24')]();};}function saveUpdates(_0x445733,_0x4e8aed){return function(_0xa1a395){if(_0xa1a395){return _0xa1a395['update'](_0x445733)[_0xae4a('0x25')](function(_0x426a45){return _0x426a45;});}return null;};}function removeEntity(_0x21862d,_0x4711c5){return function(_0xa35aef){if(_0xa35aef){return _0xa35aef[_0xae4a('0x26')]()['then'](function(){var _0x2b450b=_0xa35aef['get']({'plain':!![]});var _0x2a07bf=_0xae4a('0x27');return db[_0xae4a('0x28')][_0xae4a('0x26')]({'where':{'type':_0x2a07bf,'resourceId':_0x2b450b['id']}})[_0xae4a('0x25')](function(){return _0xa35aef;});})[_0xae4a('0x25')](function(){_0x21862d[_0xae4a('0x29')](0xcc)[_0xae4a('0x1d')]();});}};}function handleEntityNotFound(_0x27103e,_0x2367fa){return function(_0x5438b7){if(!_0x5438b7){_0x27103e[_0xae4a('0x1c')](0x194);}return _0x5438b7;};}function handleError(_0x507b16,_0x64192a){_0x64192a=_0x64192a||0x1f4;return function(_0x4068cb){logger[_0xae4a('0x2a')](_0x4068cb[_0xae4a('0x2b')]);if(_0x4068cb[_0xae4a('0x2c')]){delete _0x4068cb['name'];}_0x507b16['status'](_0x64192a)['send'](_0x4068cb);};}exports[_0xae4a('0x2d')]=function(_0x256507,_0x1815da){var _0x44e93e={},_0x5db762={},_0x217386={'count':0x0,'rows':[]};var _0x29e511=_[_0xae4a('0x2e')](db[_0xae4a('0x2f')][_0xae4a('0x30')],function(_0x2b89a8){return{'name':_0x2b89a8['fieldName'],'type':_0x2b89a8[_0xae4a('0x31')][_0xae4a('0x32')]};});_0x5db762['model']=_[_0xae4a('0x2e')](_0x29e511,'name');_0x5db762[_0xae4a('0x33')]=_[_0xae4a('0x34')](_0x256507[_0xae4a('0x33')]);_0x5db762['filters']=_[_0xae4a('0x35')](_0x5db762[_0xae4a('0x36')],_0x5db762[_0xae4a('0x33')]);_0x44e93e[_0xae4a('0x37')]=_[_0xae4a('0x35')](_0x5db762['model'],qs[_0xae4a('0x38')](_0x256507[_0xae4a('0x33')][_0xae4a('0x38')]));_0x44e93e['attributes']=_0x44e93e['attributes']['length']?_0x44e93e[_0xae4a('0x37')]:_0x5db762[_0xae4a('0x36')];if(!_0x256507[_0xae4a('0x33')]['hasOwnProperty']('nolimit')){_0x44e93e[_0xae4a('0x20')]=qs[_0xae4a('0x20')](_0x256507[_0xae4a('0x33')]['limit']);_0x44e93e[_0xae4a('0x1f')]=qs[_0xae4a('0x1f')](_0x256507[_0xae4a('0x33')][_0xae4a('0x1f')]);}_0x44e93e[_0xae4a('0x39')]=qs['sort'](_0x256507[_0xae4a('0x33')][_0xae4a('0x3a')]);_0x44e93e[_0xae4a('0x3b')]=qs[_0xae4a('0x3c')](_[_0xae4a('0x3d')](_0x256507['query'],_0x5db762['filters']),_0x29e511);if(_0x256507[_0xae4a('0x33')][_0xae4a('0x3e')]){_0x44e93e[_0xae4a('0x3b')]=_[_0xae4a('0x3f')](_0x44e93e[_0xae4a('0x3b')],{'$or':_[_0xae4a('0x2e')](_0x29e511,function(_0x57e947){if(_0x57e947[_0xae4a('0x31')]!==_0xae4a('0x40')){var _0x3e7b2e={};_0x3e7b2e[_0x57e947[_0xae4a('0x2c')]]={'$like':'%'+_0x256507[_0xae4a('0x33')][_0xae4a('0x3e')]+'%'};return _0x3e7b2e;}})});}_0x44e93e=_[_0xae4a('0x3f')]({},_0x44e93e,_0x256507[_0xae4a('0x41')]);var _0x2fda83={'where':_0x44e93e[_0xae4a('0x3b')]};return db[_0xae4a('0x2f')][_0xae4a('0x21')](_0x2fda83)[_0xae4a('0x25')](function(_0x1d060b){_0x217386[_0xae4a('0x21')]=_0x1d060b;if(_0x256507[_0xae4a('0x33')][_0xae4a('0x42')]){_0x44e93e[_0xae4a('0x43')]=[{'all':!![]}];}return db[_0xae4a('0x2f')][_0xae4a('0x44')](_0x44e93e);})[_0xae4a('0x25')](function(_0x535522){_0x217386['rows']=_0x535522;return _0x217386;})[_0xae4a('0x25')](respondWithFilteredResult(_0x1815da,_0x44e93e))['catch'](handleError(_0x1815da,null));};exports[_0xae4a('0x45')]=function(_0x318ed1,_0x458847){var _0x464a71={'raw':!![],'where':{'id':_0x318ed1[_0xae4a('0x46')]['id']}},_0x28ae04={};_0x28ae04[_0xae4a('0x36')]=_[_0xae4a('0x34')](db[_0xae4a('0x2f')]['rawAttributes']);_0x28ae04[_0xae4a('0x33')]=_[_0xae4a('0x34')](_0x318ed1['query']);_0x28ae04[_0xae4a('0x3c')]=_['intersection'](_0x28ae04[_0xae4a('0x36')],_0x28ae04[_0xae4a('0x33')]);_0x464a71[_0xae4a('0x37')]=_['intersection'](_0x28ae04[_0xae4a('0x36')],qs[_0xae4a('0x38')](_0x318ed1[_0xae4a('0x33')][_0xae4a('0x38')]));_0x464a71[_0xae4a('0x37')]=_0x464a71[_0xae4a('0x37')][_0xae4a('0x47')]?_0x464a71[_0xae4a('0x37')]:_0x28ae04['model'];if(_0x318ed1[_0xae4a('0x33')]['includeAll']){_0x464a71['include']=[{'all':!![]}];}_0x464a71=_[_0xae4a('0x3f')]({},_0x464a71,_0x318ed1[_0xae4a('0x41')]);return db['Interval'][_0xae4a('0x48')](_0x464a71)[_0xae4a('0x25')](handleEntityNotFound(_0x458847,null))['then'](respondWithResult(_0x458847,null))[_0xae4a('0x49')](handleError(_0x458847,null));};exports['create']=function(_0x409206,_0x4bf2be){return db['Interval'][_0xae4a('0x4a')](_0x409206[_0xae4a('0x4b')],{})['then'](function(_0x41f54f){var _0x5e8c53=_0x409206['user'][_0xae4a('0x4c')]({'plain':!![]});if(!_0x5e8c53)throw new Error(_0xae4a('0x4d'));if(_0x5e8c53['role']===_0xae4a('0x4e')){var _0x22b090=_0x41f54f['get']({'plain':!![]});var _0xb1d356='Intervals';return db[_0xae4a('0x4f')][_0xae4a('0x48')]({'where':{'name':_0xb1d356,'userProfileId':_0x5e8c53[_0xae4a('0x50')]},'raw':!![]})[_0xae4a('0x25')](function(_0x1ea63b){if(_0x1ea63b&&_0x1ea63b[_0xae4a('0x51')]===0x0){return db[_0xae4a('0x28')][_0xae4a('0x4a')]({'name':_0x22b090['name'],'resourceId':_0x22b090['id'],'type':_0x1ea63b[_0xae4a('0x2c')],'sectionId':_0x1ea63b['id']},{})[_0xae4a('0x25')](function(){return _0x41f54f;});}else{return _0x41f54f;}})[_0xae4a('0x49')](function(_0x5c0e8e){logger['error'](_0xae4a('0x52'),_0x5c0e8e);throw _0x5c0e8e;});}return _0x41f54f;})['then'](respondWithResult(_0x4bf2be,0xc9))[_0xae4a('0x49')](handleError(_0x4bf2be,null));};exports['update']=function(_0x28ef5e,_0x1405d5){if(_0x28ef5e[_0xae4a('0x4b')]['id']){delete _0x28ef5e[_0xae4a('0x4b')]['id'];}return db[_0xae4a('0x2f')][_0xae4a('0x48')]({'where':{'id':_0x28ef5e[_0xae4a('0x46')]['id']}})[_0xae4a('0x25')](handleEntityNotFound(_0x1405d5,null))[_0xae4a('0x25')](saveUpdates(_0x28ef5e['body'],null))[_0xae4a('0x25')](respondWithResult(_0x1405d5,null))[_0xae4a('0x49')](handleError(_0x1405d5,null));};exports[_0xae4a('0x26')]=function(_0x3464b7,_0x19c447){return db[_0xae4a('0x2f')][_0xae4a('0x48')]({'where':{'id':_0x3464b7[_0xae4a('0x46')]['id']}})[_0xae4a('0x25')](handleEntityNotFound(_0x19c447,null))[_0xae4a('0x25')](removeEntity(_0x19c447,null))[_0xae4a('0x49')](handleError(_0x19c447,null));};exports[_0xae4a('0x53')]=function(_0x5bdeaf,_0x4feae7,_0x4018e3){if(_0x5bdeaf[_0xae4a('0x4b')]['id']){delete _0x5bdeaf[_0xae4a('0x4b')]['id'];}return db[_0xae4a('0x2f')]['find']({'where':{'id':_0x5bdeaf[_0xae4a('0x46')]['id']}})[_0xae4a('0x25')](handleEntityNotFound(_0x4feae7,null))[_0xae4a('0x25')](function(_0x50e035){if(_0x50e035){_0x5bdeaf[_0xae4a('0x4b')][_0xae4a('0x54')]=_0x50e035['id'];return db[_0xae4a('0x2f')][_0xae4a('0x4a')](_0x5bdeaf[_0xae4a('0x4b')]);}})[_0xae4a('0x25')](respondWithResult(_0x4feae7,null))[_0xae4a('0x49')](handleError(_0x4feae7,null));};exports[_0xae4a('0x55')]=function(_0x5e87c2,_0x541edb,_0x3cc59b){var _0xf629e6={};var _0x340dc8={};var _0x41e6c5;var _0x48b93c;return db[_0xae4a('0x2f')][_0xae4a('0x56')]({'where':{'id':_0x5e87c2[_0xae4a('0x46')]['id']}})['then'](handleEntityNotFound(_0x541edb,null))['then'](function(_0x16fec3){if(_0x16fec3){_0x41e6c5=_0x16fec3;_0x340dc8['model']=_[_0xae4a('0x34')](db[_0xae4a('0x2f')][_0xae4a('0x30')]);_0x340dc8['query']=_[_0xae4a('0x34')](_0x5e87c2['query']);_0x340dc8[_0xae4a('0x3c')]=_[_0xae4a('0x35')](_0x340dc8['model'],_0x340dc8[_0xae4a('0x33')]);_0xf629e6['attributes']=_[_0xae4a('0x35')](_0x340dc8[_0xae4a('0x36')],qs[_0xae4a('0x38')](_0x5e87c2[_0xae4a('0x33')][_0xae4a('0x38')]));_0xf629e6[_0xae4a('0x37')]=_0xf629e6[_0xae4a('0x37')][_0xae4a('0x47')]?_0xf629e6['attributes']:_0x340dc8[_0xae4a('0x36')];_0xf629e6[_0xae4a('0x39')]=qs[_0xae4a('0x3a')](_0x5e87c2[_0xae4a('0x33')][_0xae4a('0x3a')]);_0xf629e6[_0xae4a('0x3b')]=qs[_0xae4a('0x3c')](_[_0xae4a('0x3d')](_0x5e87c2[_0xae4a('0x33')],_0x340dc8[_0xae4a('0x3c')]));if(_0x5e87c2['query'][_0xae4a('0x3e')]){_0xf629e6['where']=_[_0xae4a('0x3f')](_0xf629e6['where'],{'$or':_[_0xae4a('0x2e')](_0xf629e6[_0xae4a('0x37')],function(_0x26e803){var _0x1877f0={};_0x1877f0[_0x26e803]={'$like':'%'+_0x5e87c2['query'][_0xae4a('0x3e')]+'%'};return _0x1877f0;})});}_0xf629e6=_['merge']({},_0xf629e6,_0x5e87c2[_0xae4a('0x41')]);return _0x41e6c5['getIntervals'](_0xf629e6);}})[_0xae4a('0x25')](function(_0x2f27e7){if(_0x2f27e7){_0x48b93c=_0x2f27e7[_0xae4a('0x47')];if(!_0x5e87c2[_0xae4a('0x33')]['hasOwnProperty'](_0xae4a('0x57'))){_0xf629e6[_0xae4a('0x20')]=qs[_0xae4a('0x20')](_0x5e87c2[_0xae4a('0x33')][_0xae4a('0x20')]);_0xf629e6[_0xae4a('0x1f')]=qs['offset'](_0x5e87c2[_0xae4a('0x33')][_0xae4a('0x1f')]);}return _0x41e6c5[_0xae4a('0x55')](_0xf629e6);}})[_0xae4a('0x25')](function(_0x123e33){if(_0x123e33){return _0x123e33?{'count':_0x48b93c,'rows':_0x123e33}:null;}})[_0xae4a('0x25')](respondWithResult(_0x541edb,null))[_0xae4a('0x49')](handleError(_0x541edb,null));};exports[_0xae4a('0x58')]=function(_0x373938,_0x47b38d,_0x2280d8){return db[_0xae4a('0x2f')][_0xae4a('0x56')]({'where':{'id':_0x373938[_0xae4a('0x46')]['id']}})[_0xae4a('0x25')](handleEntityNotFound(_0x47b38d,null))[_0xae4a('0x25')](function(_0x3fa7eb){if(_0x3fa7eb){return db[_0xae4a('0x59')][_0xae4a('0x5a')](function(_0x3899b6){return db[_0xae4a('0x2f')][_0xae4a('0x26')]({'where':{'IntervalId':_0x373938[_0xae4a('0x46')]['id']},'transaction':_0x3899b6})[_0xae4a('0x25')](function(_0x304f37){var _0x3843e3=_[_0xae4a('0x2e')](_0x373938[_0xae4a('0x4b')],function(_0x33a28c){delete _0x33a28c['id'];_0x33a28c['IntervalId']=_0x373938[_0xae4a('0x46')]['id'];return _0x33a28c;});return db[_0xae4a('0x2f')]['bulkCreate'](_0x3843e3,{'transaction':_0x3899b6});});})[_0xae4a('0x25')](function(){return db[_0xae4a('0x2f')][_0xae4a('0x44')]({'where':{'IntervalId':_0x373938[_0xae4a('0x46')]['id']}});});}})['then'](respondWithResult(_0x47b38d,null))['catch'](handleError(_0x47b38d,null));};