Built motion from commit e02f907f.|2.6.14
[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 _0x06b9=['save','destroy','get','Intervals','UserProfileResource','then','error','stack','name','send','index','map','Interval','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','sort','where','pick','filter','merge','VIRTUAL','options','includeAll','include','rows','show','params','find','catch','create','user','role','UserProfileSection','userProfileId','autoAssociation','update','body','addInterval','IntervalId','getIntervals','findOne','order','addIntervals','sequelize','transaction','bulkCreate','findAll','eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','mustache','path','sox','to-csv','ejs','fs-extra','squel','crypto','jsforce','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','../../components/extensions/rewrite','sendStatus','status','end','json','offset','limit','undefined','count','set','apply'];(function(_0x14add3,_0x13ce8d){var _0x4a174f=function(_0x2b3ed7){while(--_0x2b3ed7){_0x14add3['push'](_0x14add3['shift']());}};_0x4a174f(++_0x13ce8d);}(_0x06b9,0xff));var _0x906b=function(_0x321bb2,_0x202794){_0x321bb2=_0x321bb2-0x0;var _0x9c12ed=_0x06b9[_0x321bb2];return _0x9c12ed;};'use strict';var emlformat=require(_0x906b('0x0'));var rimraf=require(_0x906b('0x1'));var zipdir=require(_0x906b('0x2'));var jsonpatch=require(_0x906b('0x3'));var rp=require('request-promise');var moment=require(_0x906b('0x4'));var BPromise=require(_0x906b('0x5'));var Mustache=require(_0x906b('0x6'));var util=require('util');var path=require(_0x906b('0x7'));var sox=require(_0x906b('0x8'));var csv=require(_0x906b('0x9'));var ejs=require(_0x906b('0xa'));var fs=require('fs');var fs_extra=require(_0x906b('0xb'));var _=require('lodash');var squel=require(_0x906b('0xc'));var crypto=require(_0x906b('0xd'));var jsforce=require(_0x906b('0xe'));var deskjs=require('desk.js');var toCsv=require(_0x906b('0x9'));var querystring=require(_0x906b('0xf'));var Papa=require(_0x906b('0x10'));var Redis=require(_0x906b('0x11'));var authService=require(_0x906b('0x12'));var qs=require(_0x906b('0x13'));var as=require(_0x906b('0x14'));var hardwareService=require(_0x906b('0x15'));var logger=require(_0x906b('0x16'))(_0x906b('0x17'));var utils=require(_0x906b('0x18'));var config=require(_0x906b('0x19'));var licenseUtil=require(_0x906b('0x1a'));var db=require(_0x906b('0x1b'))['db'];var extensions=require(_0x906b('0x1c'));function respondWithStatusCode(_0x23c316,_0x5a029a){_0x5a029a=_0x5a029a||0xcc;return function(_0xe16e75){if(_0xe16e75){return _0x23c316[_0x906b('0x1d')](_0x5a029a);}return _0x23c316[_0x906b('0x1e')](_0x5a029a)[_0x906b('0x1f')]();};}function respondWithResult(_0x8e209d,_0x23b488){_0x23b488=_0x23b488||0xc8;return function(_0x4c6af5){if(_0x4c6af5){return _0x8e209d[_0x906b('0x1e')](_0x23b488)[_0x906b('0x20')](_0x4c6af5);}};}function respondWithFilteredResult(_0x7b3dbb,_0x2541c1){return function(_0x190ea6){if(_0x190ea6){var _0x2e883a=typeof _0x2541c1[_0x906b('0x21')]==='undefined'&&typeof _0x2541c1[_0x906b('0x22')]===_0x906b('0x23');var _0x211784=_0x190ea6[_0x906b('0x24')];var _0x2ad8b2=_0x2e883a?0x0:_0x2541c1[_0x906b('0x21')];var _0x125a59=_0x2e883a?_0x190ea6['count']:_0x2541c1[_0x906b('0x21')]+_0x2541c1[_0x906b('0x22')];var _0x56669d;if(_0x125a59>=_0x211784){_0x125a59=_0x211784;_0x56669d=0xc8;}else{_0x56669d=0xce;}_0x7b3dbb['status'](_0x56669d);return _0x7b3dbb[_0x906b('0x25')]('Content-Range',_0x2ad8b2+'-'+_0x125a59+'/'+_0x211784)['json'](_0x190ea6);}return null;};}function patchUpdates(_0x314452){return function(_0x1848fb){try{jsonpatch[_0x906b('0x26')](_0x1848fb,_0x314452,!![]);}catch(_0x2f7a67){return BPromise['reject'](_0x2f7a67);}return _0x1848fb[_0x906b('0x27')]();};}function saveUpdates(_0x400664,_0x89be64){return function(_0x5da5a9){if(_0x5da5a9){return _0x5da5a9['update'](_0x400664)['then'](function(_0x40f3ce){return _0x40f3ce;});}return null;};}function removeEntity(_0x3d159d,_0x2da5b0){return function(_0x562b23){if(_0x562b23){return _0x562b23[_0x906b('0x28')]()['then'](function(){var _0x1686ad=_0x562b23[_0x906b('0x29')]({'plain':!![]});var _0x4c4e2e=_0x906b('0x2a');return db[_0x906b('0x2b')][_0x906b('0x28')]({'where':{'type':_0x4c4e2e,'resourceId':_0x1686ad['id']}})[_0x906b('0x2c')](function(){return _0x562b23;});})[_0x906b('0x2c')](function(){_0x3d159d['status'](0xcc)[_0x906b('0x1f')]();});}};}function handleEntityNotFound(_0x2f5cc7,_0x127c90){return function(_0x187dec){if(!_0x187dec){_0x2f5cc7['sendStatus'](0x194);}return _0x187dec;};}function handleError(_0x30dbb7,_0x2dd421){_0x2dd421=_0x2dd421||0x1f4;return function(_0x305e64){logger[_0x906b('0x2d')](_0x305e64[_0x906b('0x2e')]);if(_0x305e64[_0x906b('0x2f')]){delete _0x305e64['name'];}_0x30dbb7[_0x906b('0x1e')](_0x2dd421)[_0x906b('0x30')](_0x305e64);};}exports[_0x906b('0x31')]=function(_0x269cd2,_0x2acc4c){var _0x5b59a6={},_0x523024={},_0x48b5d0={'count':0x0,'rows':[]};var _0xd6cf59=_[_0x906b('0x32')](db[_0x906b('0x33')][_0x906b('0x34')],function(_0x24bd60){return{'name':_0x24bd60[_0x906b('0x35')],'type':_0x24bd60[_0x906b('0x36')][_0x906b('0x37')]};});_0x523024[_0x906b('0x38')]=_[_0x906b('0x32')](_0xd6cf59,_0x906b('0x2f'));_0x523024[_0x906b('0x39')]=_[_0x906b('0x3a')](_0x269cd2['query']);_0x523024[_0x906b('0x3b')]=_[_0x906b('0x3c')](_0x523024['model'],_0x523024['query']);_0x5b59a6[_0x906b('0x3d')]=_[_0x906b('0x3c')](_0x523024[_0x906b('0x38')],qs[_0x906b('0x3e')](_0x269cd2[_0x906b('0x39')][_0x906b('0x3e')]));_0x5b59a6['attributes']=_0x5b59a6[_0x906b('0x3d')][_0x906b('0x3f')]?_0x5b59a6[_0x906b('0x3d')]:_0x523024[_0x906b('0x38')];if(!_0x269cd2[_0x906b('0x39')][_0x906b('0x40')](_0x906b('0x41'))){_0x5b59a6[_0x906b('0x22')]=qs['limit'](_0x269cd2[_0x906b('0x39')][_0x906b('0x22')]);_0x5b59a6['offset']=qs[_0x906b('0x21')](_0x269cd2[_0x906b('0x39')][_0x906b('0x21')]);}_0x5b59a6['order']=qs[_0x906b('0x42')](_0x269cd2['query'][_0x906b('0x42')]);_0x5b59a6[_0x906b('0x43')]=qs[_0x906b('0x3b')](_[_0x906b('0x44')](_0x269cd2[_0x906b('0x39')],_0x523024['filters']),_0xd6cf59);if(_0x269cd2['query'][_0x906b('0x45')]){_0x5b59a6[_0x906b('0x43')]=_[_0x906b('0x46')](_0x5b59a6[_0x906b('0x43')],{'$or':_[_0x906b('0x32')](_0xd6cf59,function(_0x24cadf){if(_0x24cadf[_0x906b('0x36')]!==_0x906b('0x47')){var _0x131b43={};_0x131b43[_0x24cadf[_0x906b('0x2f')]]={'$like':'%'+_0x269cd2[_0x906b('0x39')][_0x906b('0x45')]+'%'};return _0x131b43;}})});}_0x5b59a6=_[_0x906b('0x46')]({},_0x5b59a6,_0x269cd2[_0x906b('0x48')]);var _0x3cd595={'where':_0x5b59a6[_0x906b('0x43')]};return db[_0x906b('0x33')]['count'](_0x3cd595)[_0x906b('0x2c')](function(_0x55ccb6){_0x48b5d0[_0x906b('0x24')]=_0x55ccb6;if(_0x269cd2[_0x906b('0x39')][_0x906b('0x49')]){_0x5b59a6[_0x906b('0x4a')]=[{'all':!![]}];}return db[_0x906b('0x33')]['findAll'](_0x5b59a6);})[_0x906b('0x2c')](function(_0xc133f2){_0x48b5d0[_0x906b('0x4b')]=_0xc133f2;return _0x48b5d0;})[_0x906b('0x2c')](respondWithFilteredResult(_0x2acc4c,_0x5b59a6))['catch'](handleError(_0x2acc4c,null));};exports[_0x906b('0x4c')]=function(_0x22725b,_0xb905f0){var _0x1dd7eb={'raw':!![],'where':{'id':_0x22725b[_0x906b('0x4d')]['id']}},_0x547ad9={};_0x547ad9[_0x906b('0x38')]=_[_0x906b('0x3a')](db[_0x906b('0x33')][_0x906b('0x34')]);_0x547ad9[_0x906b('0x39')]=_[_0x906b('0x3a')](_0x22725b['query']);_0x547ad9['filters']=_[_0x906b('0x3c')](_0x547ad9['model'],_0x547ad9[_0x906b('0x39')]);_0x1dd7eb[_0x906b('0x3d')]=_[_0x906b('0x3c')](_0x547ad9[_0x906b('0x38')],qs[_0x906b('0x3e')](_0x22725b[_0x906b('0x39')]['fields']));_0x1dd7eb[_0x906b('0x3d')]=_0x1dd7eb[_0x906b('0x3d')][_0x906b('0x3f')]?_0x1dd7eb[_0x906b('0x3d')]:_0x547ad9['model'];if(_0x22725b[_0x906b('0x39')][_0x906b('0x49')]){_0x1dd7eb[_0x906b('0x4a')]=[{'all':!![]}];}_0x1dd7eb=_['merge']({},_0x1dd7eb,_0x22725b[_0x906b('0x48')]);return db[_0x906b('0x33')][_0x906b('0x4e')](_0x1dd7eb)[_0x906b('0x2c')](handleEntityNotFound(_0xb905f0,null))['then'](respondWithResult(_0xb905f0,null))[_0x906b('0x4f')](handleError(_0xb905f0,null));};exports[_0x906b('0x50')]=function(_0x55115e,_0x5580d0){return db['Interval'][_0x906b('0x50')](_0x55115e['body'],{})[_0x906b('0x2c')](function(_0x17028b){var _0x2d5fdf=_0x55115e[_0x906b('0x51')][_0x906b('0x29')]({'plain':!![]});if(!_0x2d5fdf)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x2d5fdf[_0x906b('0x52')]===_0x906b('0x51')){var _0x34baa5=_0x17028b[_0x906b('0x29')]({'plain':!![]});var _0x47568f=_0x906b('0x2a');return db[_0x906b('0x53')][_0x906b('0x4e')]({'where':{'name':_0x47568f,'userProfileId':_0x2d5fdf[_0x906b('0x54')]},'raw':!![]})[_0x906b('0x2c')](function(_0x1f6a82){if(_0x1f6a82&&_0x1f6a82[_0x906b('0x55')]===0x0){return db[_0x906b('0x2b')]['create']({'name':_0x34baa5['name'],'resourceId':_0x34baa5['id'],'type':_0x1f6a82[_0x906b('0x2f')],'sectionId':_0x1f6a82['id']},{})['then'](function(){return _0x17028b;});}else{return _0x17028b;}})[_0x906b('0x4f')](function(_0x525713){logger[_0x906b('0x2d')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x525713);throw _0x525713;});}return _0x17028b;})['then'](respondWithResult(_0x5580d0,0xc9))[_0x906b('0x4f')](handleError(_0x5580d0,null));};exports[_0x906b('0x56')]=function(_0x106ef7,_0x169325){if(_0x106ef7[_0x906b('0x57')]['id']){delete _0x106ef7[_0x906b('0x57')]['id'];}return db[_0x906b('0x33')][_0x906b('0x4e')]({'where':{'id':_0x106ef7[_0x906b('0x4d')]['id']}})[_0x906b('0x2c')](handleEntityNotFound(_0x169325,null))['then'](saveUpdates(_0x106ef7['body'],null))['then'](respondWithResult(_0x169325,null))[_0x906b('0x4f')](handleError(_0x169325,null));};exports[_0x906b('0x28')]=function(_0x253bf2,_0x36c2b6){return db[_0x906b('0x33')][_0x906b('0x4e')]({'where':{'id':_0x253bf2['params']['id']}})[_0x906b('0x2c')](handleEntityNotFound(_0x36c2b6,null))[_0x906b('0x2c')](removeEntity(_0x36c2b6,null))[_0x906b('0x4f')](handleError(_0x36c2b6,null));};exports[_0x906b('0x58')]=function(_0x3e8b48,_0x1f8c60,_0x3eaf4c){if(_0x3e8b48['body']['id']){delete _0x3e8b48[_0x906b('0x57')]['id'];}return db['Interval']['find']({'where':{'id':_0x3e8b48[_0x906b('0x4d')]['id']}})[_0x906b('0x2c')](handleEntityNotFound(_0x1f8c60,null))[_0x906b('0x2c')](function(_0x154d68){if(_0x154d68){_0x3e8b48[_0x906b('0x57')][_0x906b('0x59')]=_0x154d68['id'];return db[_0x906b('0x33')][_0x906b('0x50')](_0x3e8b48[_0x906b('0x57')]);}})[_0x906b('0x2c')](respondWithResult(_0x1f8c60,null))[_0x906b('0x4f')](handleError(_0x1f8c60,null));};exports[_0x906b('0x5a')]=function(_0x25af1a,_0x55bf71,_0x24a171){var _0x3f3b7f={};var _0x86e42a={};var _0x556fda;var _0x2d3619;return db['Interval'][_0x906b('0x5b')]({'where':{'id':_0x25af1a[_0x906b('0x4d')]['id']}})[_0x906b('0x2c')](handleEntityNotFound(_0x55bf71,null))[_0x906b('0x2c')](function(_0xd7c4f7){if(_0xd7c4f7){_0x556fda=_0xd7c4f7;_0x86e42a[_0x906b('0x38')]=_[_0x906b('0x3a')](db[_0x906b('0x33')]['rawAttributes']);_0x86e42a['query']=_[_0x906b('0x3a')](_0x25af1a['query']);_0x86e42a[_0x906b('0x3b')]=_['intersection'](_0x86e42a['model'],_0x86e42a[_0x906b('0x39')]);_0x3f3b7f['attributes']=_[_0x906b('0x3c')](_0x86e42a[_0x906b('0x38')],qs[_0x906b('0x3e')](_0x25af1a[_0x906b('0x39')][_0x906b('0x3e')]));_0x3f3b7f['attributes']=_0x3f3b7f[_0x906b('0x3d')][_0x906b('0x3f')]?_0x3f3b7f['attributes']:_0x86e42a[_0x906b('0x38')];_0x3f3b7f[_0x906b('0x5c')]=qs[_0x906b('0x42')](_0x25af1a[_0x906b('0x39')][_0x906b('0x42')]);_0x3f3b7f[_0x906b('0x43')]=qs[_0x906b('0x3b')](_['pick'](_0x25af1a['query'],_0x86e42a[_0x906b('0x3b')]));if(_0x25af1a[_0x906b('0x39')][_0x906b('0x45')]){_0x3f3b7f[_0x906b('0x43')]=_['merge'](_0x3f3b7f['where'],{'$or':_[_0x906b('0x32')](_0x3f3b7f[_0x906b('0x3d')],function(_0x26845f){var _0x3e7bd6={};_0x3e7bd6[_0x26845f]={'$like':'%'+_0x25af1a[_0x906b('0x39')][_0x906b('0x45')]+'%'};return _0x3e7bd6;})});}_0x3f3b7f=_[_0x906b('0x46')]({},_0x3f3b7f,_0x25af1a[_0x906b('0x48')]);return _0x556fda[_0x906b('0x5a')](_0x3f3b7f);}})['then'](function(_0x42ad56){if(_0x42ad56){_0x2d3619=_0x42ad56[_0x906b('0x3f')];if(!_0x25af1a[_0x906b('0x39')][_0x906b('0x40')](_0x906b('0x41'))){_0x3f3b7f[_0x906b('0x22')]=qs[_0x906b('0x22')](_0x25af1a['query']['limit']);_0x3f3b7f[_0x906b('0x21')]=qs['offset'](_0x25af1a[_0x906b('0x39')][_0x906b('0x21')]);}return _0x556fda[_0x906b('0x5a')](_0x3f3b7f);}})['then'](function(_0x5ed724){if(_0x5ed724){return _0x5ed724?{'count':_0x2d3619,'rows':_0x5ed724}:null;}})[_0x906b('0x2c')](respondWithResult(_0x55bf71,null))[_0x906b('0x4f')](handleError(_0x55bf71,null));};exports[_0x906b('0x5d')]=function(_0x29ee69,_0x15082e,_0x33bbc8){return db[_0x906b('0x33')][_0x906b('0x5b')]({'where':{'id':_0x29ee69[_0x906b('0x4d')]['id']}})['then'](handleEntityNotFound(_0x15082e,null))[_0x906b('0x2c')](function(_0x3b831f){if(_0x3b831f){return db[_0x906b('0x5e')][_0x906b('0x5f')](function(_0x479ea6){return db[_0x906b('0x33')][_0x906b('0x28')]({'where':{'IntervalId':_0x29ee69[_0x906b('0x4d')]['id']},'transaction':_0x479ea6})['then'](function(_0x429415){var _0x2b89f9=_[_0x906b('0x32')](_0x29ee69[_0x906b('0x57')],function(_0x5a0bd8){delete _0x5a0bd8['id'];_0x5a0bd8[_0x906b('0x59')]=_0x29ee69['params']['id'];return _0x5a0bd8;});return db['Interval'][_0x906b('0x60')](_0x2b89f9,{'transaction':_0x479ea6});});})['then'](function(){return db[_0x906b('0x33')][_0x906b('0x61')]({'where':{'IntervalId':_0x29ee69[_0x906b('0x4d')]['id']}});});}})[_0x906b('0x2c')](respondWithResult(_0x15082e,null))[_0x906b('0x4f')](handleError(_0x15082e,null));};