Built motion from commit 25580385.|2.6.2
[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 _0x510d=['pick','filter','where','VIRTUAL','options','includeAll','include','findAll','rows','rawAttributes','merge','find','create','user','UserProfileSection','catch','update','body','params','addInterval','IntervalId','findOne','getIntervals','hasOwnProperty','addIntervals','sequelize','transaction','bulkCreate','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','ejs','fs-extra','lodash','crypto','jsforce','desk.js','to-csv','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','status','end','json','limit','undefined','count','offset','Content-Range','reject','save','then','destroy','get','Intervals','UserProfileResource','sendStatus','error','name','send','index','map','Interval','type','key','query','keys','filters','intersection','model','fields','attributes','length','nolimit','order','sort'];(function(_0x3356e3,_0x34e3f7){var _0x41b8ee=function(_0x361da6){while(--_0x361da6){_0x3356e3['push'](_0x3356e3['shift']());}};_0x41b8ee(++_0x34e3f7);}(_0x510d,0x76));var _0xd510=function(_0x2576d7,_0x167624){_0x2576d7=_0x2576d7-0x0;var _0x16a08c=_0x510d[_0x2576d7];return _0x16a08c;};'use strict';var emlformat=require(_0xd510('0x0'));var rimraf=require(_0xd510('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0xd510('0x2'));var rp=require(_0xd510('0x3'));var moment=require(_0xd510('0x4'));var BPromise=require(_0xd510('0x5'));var Mustache=require(_0xd510('0x6'));var util=require(_0xd510('0x7'));var path=require(_0xd510('0x8'));var sox=require(_0xd510('0x9'));var csv=require('to-csv');var ejs=require(_0xd510('0xa'));var fs=require('fs');var fs_extra=require(_0xd510('0xb'));var _=require(_0xd510('0xc'));var squel=require('squel');var crypto=require(_0xd510('0xd'));var jsforce=require(_0xd510('0xe'));var deskjs=require(_0xd510('0xf'));var toCsv=require(_0xd510('0x10'));var querystring=require(_0xd510('0x11'));var Papa=require('papaparse');var Redis=require(_0xd510('0x12'));var authService=require(_0xd510('0x13'));var qs=require(_0xd510('0x14'));var as=require(_0xd510('0x15'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xd510('0x16'))(_0xd510('0x17'));var utils=require(_0xd510('0x18'));var config=require(_0xd510('0x19'));var licenseUtil=require(_0xd510('0x1a'));var db=require('../../mysqldb')['db'];var extensions=require('../../components/extensions/rewrite');function respondWithStatusCode(_0x58da40,_0x3076ff){_0x3076ff=_0x3076ff||0xcc;return function(_0x101f29){if(_0x101f29){return _0x58da40['sendStatus'](_0x3076ff);}return _0x58da40[_0xd510('0x1b')](_0x3076ff)[_0xd510('0x1c')]();};}function respondWithResult(_0x4cba90,_0x15e1bd){_0x15e1bd=_0x15e1bd||0xc8;return function(_0x1ec8e1){if(_0x1ec8e1){return _0x4cba90[_0xd510('0x1b')](_0x15e1bd)[_0xd510('0x1d')](_0x1ec8e1);}};}function respondWithFilteredResult(_0x1bc510,_0x22b2d2){return function(_0x2f3a6c){if(_0x2f3a6c){var _0x57d76f=typeof _0x22b2d2['offset']==='undefined'&&typeof _0x22b2d2[_0xd510('0x1e')]===_0xd510('0x1f');var _0x2a708a=_0x2f3a6c[_0xd510('0x20')];var _0x288e0a=_0x57d76f?0x0:_0x22b2d2[_0xd510('0x21')];var _0x46d114=_0x57d76f?_0x2f3a6c[_0xd510('0x20')]:_0x22b2d2[_0xd510('0x21')]+_0x22b2d2['limit'];var _0x469dbe;if(_0x46d114>=_0x2a708a){_0x46d114=_0x2a708a;_0x469dbe=0xc8;}else{_0x469dbe=0xce;}_0x1bc510[_0xd510('0x1b')](_0x469dbe);return _0x1bc510['set'](_0xd510('0x22'),_0x288e0a+'-'+_0x46d114+'/'+_0x2a708a)['json'](_0x2f3a6c);}return null;};}function patchUpdates(_0x10c950){return function(_0x3a1125){try{jsonpatch['apply'](_0x3a1125,_0x10c950,!![]);}catch(_0x17e077){return BPromise[_0xd510('0x23')](_0x17e077);}return _0x3a1125[_0xd510('0x24')]();};}function saveUpdates(_0x1ecf72,_0x1b7b85){return function(_0x339495){if(_0x339495){return _0x339495['update'](_0x1ecf72)[_0xd510('0x25')](function(_0x49ddda){return _0x49ddda;});}return null;};}function removeEntity(_0x53530b,_0x5c75b7){return function(_0x17c3b1){if(_0x17c3b1){return _0x17c3b1[_0xd510('0x26')]()[_0xd510('0x25')](function(){var _0x2a622d=_0x17c3b1[_0xd510('0x27')]({'plain':!![]});var _0x22b0ba=_0xd510('0x28');return db[_0xd510('0x29')][_0xd510('0x26')]({'where':{'type':_0x22b0ba,'resourceId':_0x2a622d['id']}})['then'](function(){return _0x17c3b1;});})[_0xd510('0x25')](function(){_0x53530b[_0xd510('0x1b')](0xcc)[_0xd510('0x1c')]();});}};}function handleEntityNotFound(_0x3ea717,_0x3e5b64){return function(_0x41d588){if(!_0x41d588){_0x3ea717[_0xd510('0x2a')](0x194);}return _0x41d588;};}function handleError(_0x51d66d,_0x4f35f1){_0x4f35f1=_0x4f35f1||0x1f4;return function(_0x2a5247){logger[_0xd510('0x2b')](_0x2a5247['stack']);if(_0x2a5247[_0xd510('0x2c')]){delete _0x2a5247[_0xd510('0x2c')];}_0x51d66d[_0xd510('0x1b')](_0x4f35f1)[_0xd510('0x2d')](_0x2a5247);};}exports[_0xd510('0x2e')]=function(_0x24465e,_0x24db12){var _0x5cf16a={},_0x5d049f={},_0x22ba2b={'count':0x0,'rows':[]};var _0x3be432=_[_0xd510('0x2f')](db[_0xd510('0x30')]['rawAttributes'],function(_0x54594c){return{'name':_0x54594c['fieldName'],'type':_0x54594c[_0xd510('0x31')][_0xd510('0x32')]};});_0x5d049f['model']=_[_0xd510('0x2f')](_0x3be432,_0xd510('0x2c'));_0x5d049f[_0xd510('0x33')]=_[_0xd510('0x34')](_0x24465e[_0xd510('0x33')]);_0x5d049f[_0xd510('0x35')]=_[_0xd510('0x36')](_0x5d049f[_0xd510('0x37')],_0x5d049f[_0xd510('0x33')]);_0x5cf16a['attributes']=_[_0xd510('0x36')](_0x5d049f[_0xd510('0x37')],qs['fields'](_0x24465e[_0xd510('0x33')][_0xd510('0x38')]));_0x5cf16a['attributes']=_0x5cf16a[_0xd510('0x39')][_0xd510('0x3a')]?_0x5cf16a['attributes']:_0x5d049f[_0xd510('0x37')];if(!_0x24465e[_0xd510('0x33')]['hasOwnProperty'](_0xd510('0x3b'))){_0x5cf16a[_0xd510('0x1e')]=qs[_0xd510('0x1e')](_0x24465e['query'][_0xd510('0x1e')]);_0x5cf16a[_0xd510('0x21')]=qs[_0xd510('0x21')](_0x24465e[_0xd510('0x33')][_0xd510('0x21')]);}_0x5cf16a[_0xd510('0x3c')]=qs[_0xd510('0x3d')](_0x24465e['query'][_0xd510('0x3d')]);_0x5cf16a['where']=qs['filters'](_[_0xd510('0x3e')](_0x24465e[_0xd510('0x33')],_0x5d049f[_0xd510('0x35')]),_0x3be432);if(_0x24465e[_0xd510('0x33')][_0xd510('0x3f')]){_0x5cf16a[_0xd510('0x40')]=_['merge'](_0x5cf16a[_0xd510('0x40')],{'$or':_[_0xd510('0x2f')](_0x3be432,function(_0x467994){if(_0x467994[_0xd510('0x31')]!==_0xd510('0x41')){var _0x1a938d={};_0x1a938d[_0x467994[_0xd510('0x2c')]]={'$like':'%'+_0x24465e[_0xd510('0x33')][_0xd510('0x3f')]+'%'};return _0x1a938d;}})});}_0x5cf16a=_['merge']({},_0x5cf16a,_0x24465e[_0xd510('0x42')]);var _0x52a89f={'where':_0x5cf16a[_0xd510('0x40')]};return db[_0xd510('0x30')][_0xd510('0x20')](_0x52a89f)[_0xd510('0x25')](function(_0x5c6ca8){_0x22ba2b[_0xd510('0x20')]=_0x5c6ca8;if(_0x24465e['query'][_0xd510('0x43')]){_0x5cf16a[_0xd510('0x44')]=[{'all':!![]}];}return db[_0xd510('0x30')][_0xd510('0x45')](_0x5cf16a);})['then'](function(_0x34d52a){_0x22ba2b[_0xd510('0x46')]=_0x34d52a;return _0x22ba2b;})[_0xd510('0x25')](respondWithFilteredResult(_0x24db12,_0x5cf16a))['catch'](handleError(_0x24db12,null));};exports['show']=function(_0x7ff952,_0x4c78b4){var _0x32dd1b={'raw':!![],'where':{'id':_0x7ff952['params']['id']}},_0x3aaa28={};_0x3aaa28[_0xd510('0x37')]=_[_0xd510('0x34')](db['Interval'][_0xd510('0x47')]);_0x3aaa28[_0xd510('0x33')]=_['keys'](_0x7ff952[_0xd510('0x33')]);_0x3aaa28['filters']=_[_0xd510('0x36')](_0x3aaa28[_0xd510('0x37')],_0x3aaa28[_0xd510('0x33')]);_0x32dd1b[_0xd510('0x39')]=_[_0xd510('0x36')](_0x3aaa28[_0xd510('0x37')],qs[_0xd510('0x38')](_0x7ff952['query']['fields']));_0x32dd1b[_0xd510('0x39')]=_0x32dd1b[_0xd510('0x39')][_0xd510('0x3a')]?_0x32dd1b['attributes']:_0x3aaa28[_0xd510('0x37')];if(_0x7ff952['query']['includeAll']){_0x32dd1b[_0xd510('0x44')]=[{'all':!![]}];}_0x32dd1b=_[_0xd510('0x48')]({},_0x32dd1b,_0x7ff952[_0xd510('0x42')]);return db['Interval'][_0xd510('0x49')](_0x32dd1b)[_0xd510('0x25')](handleEntityNotFound(_0x4c78b4,null))[_0xd510('0x25')](respondWithResult(_0x4c78b4,null))['catch'](handleError(_0x4c78b4,null));};exports[_0xd510('0x4a')]=function(_0x520cd4,_0x570162){return db[_0xd510('0x30')]['create'](_0x520cd4['body'],{})[_0xd510('0x25')](function(_0x3b8e2f){var _0x3bf009=_0x520cd4[_0xd510('0x4b')][_0xd510('0x27')]({'plain':!![]});if(!_0x3bf009)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x3bf009['role']==='user'){var _0xabf4b6=_0x3b8e2f[_0xd510('0x27')]({'plain':!![]});var _0x57a837=_0xd510('0x28');return db[_0xd510('0x4c')]['find']({'where':{'name':_0x57a837,'userProfileId':_0x3bf009['userProfileId']},'raw':!![]})[_0xd510('0x25')](function(_0x17041f){if(_0x17041f&&_0x17041f['autoAssociation']===0x0){return db[_0xd510('0x29')][_0xd510('0x4a')]({'name':_0xabf4b6['name'],'resourceId':_0xabf4b6['id'],'type':_0x17041f['name'],'sectionId':_0x17041f['id']},{})['then'](function(){return _0x3b8e2f;});}else{return _0x3b8e2f;}})[_0xd510('0x4d')](function(_0x52e9e2){logger[_0xd510('0x2b')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x52e9e2);throw _0x52e9e2;});}return _0x3b8e2f;})['then'](respondWithResult(_0x570162,0xc9))[_0xd510('0x4d')](handleError(_0x570162,null));};exports[_0xd510('0x4e')]=function(_0x148797,_0x5890ba){if(_0x148797[_0xd510('0x4f')]['id']){delete _0x148797[_0xd510('0x4f')]['id'];}return db[_0xd510('0x30')]['find']({'where':{'id':_0x148797[_0xd510('0x50')]['id']}})[_0xd510('0x25')](handleEntityNotFound(_0x5890ba,null))['then'](saveUpdates(_0x148797[_0xd510('0x4f')],null))[_0xd510('0x25')](respondWithResult(_0x5890ba,null))['catch'](handleError(_0x5890ba,null));};exports['destroy']=function(_0xda917b,_0xbd4871){return db[_0xd510('0x30')][_0xd510('0x49')]({'where':{'id':_0xda917b['params']['id']}})[_0xd510('0x25')](handleEntityNotFound(_0xbd4871,null))[_0xd510('0x25')](removeEntity(_0xbd4871,null))[_0xd510('0x4d')](handleError(_0xbd4871,null));};exports[_0xd510('0x51')]=function(_0x45c100,_0x29669e,_0x4e5fdf){if(_0x45c100[_0xd510('0x4f')]['id']){delete _0x45c100[_0xd510('0x4f')]['id'];}return db['Interval']['find']({'where':{'id':_0x45c100[_0xd510('0x50')]['id']}})[_0xd510('0x25')](handleEntityNotFound(_0x29669e,null))[_0xd510('0x25')](function(_0x2c157b){if(_0x2c157b){_0x45c100[_0xd510('0x4f')][_0xd510('0x52')]=_0x2c157b['id'];return db['Interval'][_0xd510('0x4a')](_0x45c100[_0xd510('0x4f')]);}})[_0xd510('0x25')](respondWithResult(_0x29669e,null))[_0xd510('0x4d')](handleError(_0x29669e,null));};exports['getIntervals']=function(_0x3fa85c,_0x564420,_0x367841){var _0x17a7b7={};var _0x4080a2={};var _0x251905;var _0x2ab391;return db[_0xd510('0x30')][_0xd510('0x53')]({'where':{'id':_0x3fa85c[_0xd510('0x50')]['id']}})[_0xd510('0x25')](handleEntityNotFound(_0x564420,null))[_0xd510('0x25')](function(_0x6526b9){if(_0x6526b9){_0x251905=_0x6526b9;_0x4080a2[_0xd510('0x37')]=_[_0xd510('0x34')](db[_0xd510('0x30')][_0xd510('0x47')]);_0x4080a2[_0xd510('0x33')]=_[_0xd510('0x34')](_0x3fa85c[_0xd510('0x33')]);_0x4080a2[_0xd510('0x35')]=_[_0xd510('0x36')](_0x4080a2[_0xd510('0x37')],_0x4080a2[_0xd510('0x33')]);_0x17a7b7['attributes']=_[_0xd510('0x36')](_0x4080a2[_0xd510('0x37')],qs[_0xd510('0x38')](_0x3fa85c[_0xd510('0x33')][_0xd510('0x38')]));_0x17a7b7[_0xd510('0x39')]=_0x17a7b7[_0xd510('0x39')][_0xd510('0x3a')]?_0x17a7b7[_0xd510('0x39')]:_0x4080a2[_0xd510('0x37')];_0x17a7b7[_0xd510('0x3c')]=qs['sort'](_0x3fa85c[_0xd510('0x33')][_0xd510('0x3d')]);_0x17a7b7[_0xd510('0x40')]=qs['filters'](_['pick'](_0x3fa85c['query'],_0x4080a2[_0xd510('0x35')]));if(_0x3fa85c[_0xd510('0x33')]['filter']){_0x17a7b7[_0xd510('0x40')]=_[_0xd510('0x48')](_0x17a7b7['where'],{'$or':_[_0xd510('0x2f')](_0x17a7b7[_0xd510('0x39')],function(_0x5e9afd){var _0x52f38b={};_0x52f38b[_0x5e9afd]={'$like':'%'+_0x3fa85c[_0xd510('0x33')]['filter']+'%'};return _0x52f38b;})});}_0x17a7b7=_[_0xd510('0x48')]({},_0x17a7b7,_0x3fa85c[_0xd510('0x42')]);return _0x251905[_0xd510('0x54')](_0x17a7b7);}})['then'](function(_0x2f817f){if(_0x2f817f){_0x2ab391=_0x2f817f[_0xd510('0x3a')];if(!_0x3fa85c[_0xd510('0x33')][_0xd510('0x55')](_0xd510('0x3b'))){_0x17a7b7['limit']=qs['limit'](_0x3fa85c[_0xd510('0x33')][_0xd510('0x1e')]);_0x17a7b7[_0xd510('0x21')]=qs[_0xd510('0x21')](_0x3fa85c[_0xd510('0x33')][_0xd510('0x21')]);}return _0x251905[_0xd510('0x54')](_0x17a7b7);}})['then'](function(_0x3d08da){if(_0x3d08da){return _0x3d08da?{'count':_0x2ab391,'rows':_0x3d08da}:null;}})[_0xd510('0x25')](respondWithResult(_0x564420,null))['catch'](handleError(_0x564420,null));};exports[_0xd510('0x56')]=function(_0x1117fa,_0x159f0f,_0x8cd393){return db['Interval']['findOne']({'where':{'id':_0x1117fa[_0xd510('0x50')]['id']}})[_0xd510('0x25')](handleEntityNotFound(_0x159f0f,null))[_0xd510('0x25')](function(_0x11573c){if(_0x11573c){return db[_0xd510('0x57')][_0xd510('0x58')](function(_0x1870cd){return db['Interval']['destroy']({'where':{'IntervalId':_0x1117fa[_0xd510('0x50')]['id']},'transaction':_0x1870cd})[_0xd510('0x25')](function(_0x94db52){var _0x4a71ff=_['map'](_0x1117fa[_0xd510('0x4f')],function(_0x2dfa25){delete _0x2dfa25['id'];_0x2dfa25[_0xd510('0x52')]=_0x1117fa[_0xd510('0x50')]['id'];return _0x2dfa25;});return db[_0xd510('0x30')][_0xd510('0x59')](_0x4a71ff,{'transaction':_0x1870cd});});})[_0xd510('0x25')](function(){return db[_0xd510('0x30')][_0xd510('0x45')]({'where':{'IntervalId':_0x1117fa['params']['id']}});});}})['then'](respondWithResult(_0x159f0f,null))['catch'](handleError(_0x159f0f,null));};