Built motion from commit (unavailable).|2.5.11
[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 _0xb009=['ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/license/util','sendStatus','status','end','json','count','offset','limit','set','Content-Range','apply','reject','update','destroy','then','get','Intervals','name','map','Interval','rawAttributes','fieldName','model','keys','query','filters','intersection','attributes','length','hasOwnProperty','nolimit','sort','where','pick','merge','VIRTUAL','filter','options','includeAll','include','findAll','rows','fields','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','autoAssociation','UserProfileResource','catch','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','params','addInterval','IntervalId','findOne','order','getIntervals','addIntervals','sequelize','rimraf','fast-json-patch','request-promise','bluebird','mustache','util','sox','to-csv','ejs','lodash','squel','crypto','desk.js','papaparse'];(function(_0xdd7a33,_0x5c13be){var _0x572b77=function(_0x3bc8fc){while(--_0x3bc8fc){_0xdd7a33['push'](_0xdd7a33['shift']());}};_0x572b77(++_0x5c13be);}(_0xb009,0x196));var _0x9b00=function(_0x5f0864,_0x413e01){_0x5f0864=_0x5f0864-0x0;var _0x5700dc=_0xb009[_0x5f0864];return _0x5700dc;};'use strict';var pdf=require('html-pdf');var emlformat=require('eml-format');var rimraf=require(_0x9b00('0x0'));var zipdir=require('zip-dir');var jsonpatch=require(_0x9b00('0x1'));var rp=require(_0x9b00('0x2'));var moment=require('moment');var BPromise=require(_0x9b00('0x3'));var Mustache=require(_0x9b00('0x4'));var util=require(_0x9b00('0x5'));var path=require('path');var sox=require(_0x9b00('0x6'));var csv=require(_0x9b00('0x7'));var ejs=require(_0x9b00('0x8'));var fs=require('fs');var _=require(_0x9b00('0x9'));var squel=require(_0x9b00('0xa'));var crypto=require(_0x9b00('0xb'));var jsforce=require('jsforce');var deskjs=require(_0x9b00('0xc'));var toCsv=require(_0x9b00('0x7'));var querystring=require('querystring');var Papa=require(_0x9b00('0xd'));var Redis=require(_0x9b00('0xe'));var authService=require(_0x9b00('0xf'));var qs=require(_0x9b00('0x10'));var as=require(_0x9b00('0x11'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x9b00('0x12'))(_0x9b00('0x13'));var utils=require(_0x9b00('0x14'));var config=require('../../config/environment');var licenseUtil=require(_0x9b00('0x15'));var db=require('../../mysqldb')['db'];var extensions=require('../../components/extensions/rewrite');function respondWithStatusCode(_0x425870,_0x3eb01e){_0x3eb01e=_0x3eb01e||0xcc;return function(_0x207abe){if(_0x207abe){return _0x425870[_0x9b00('0x16')](_0x3eb01e);}return _0x425870[_0x9b00('0x17')](_0x3eb01e)[_0x9b00('0x18')]();};}function respondWithResult(_0xe5580c,_0x2bfc50){_0x2bfc50=_0x2bfc50||0xc8;return function(_0x3e1e21){if(_0x3e1e21){return _0xe5580c['status'](_0x2bfc50)[_0x9b00('0x19')](_0x3e1e21);}};}function respondWithFilteredResult(_0x30d192,_0x1e9274){return function(_0x5da3e6){if(_0x5da3e6){var _0x4dc731=_0x5da3e6[_0x9b00('0x1a')],_0x4b1d1d=_0x1e9274['offset'],_0x1a14a0=_0x1e9274[_0x9b00('0x1b')]+_0x1e9274[_0x9b00('0x1c')],_0x103023;if(_0x1a14a0>=_0x4dc731){_0x1a14a0=_0x4dc731;_0x103023=0xc8;}else{_0x103023=0xce;}_0x30d192[_0x9b00('0x17')](_0x103023);return _0x30d192[_0x9b00('0x1d')](_0x9b00('0x1e'),_0x4b1d1d+'-'+_0x1a14a0+'/'+_0x4dc731)[_0x9b00('0x19')](_0x5da3e6);}return null;};}function patchUpdates(_0x32570f){return function(_0x267f4c){try{jsonpatch[_0x9b00('0x1f')](_0x267f4c,_0x32570f,!![]);}catch(_0xb4030e){return BPromise[_0x9b00('0x20')](_0xb4030e);}return _0x267f4c['save']();};}function saveUpdates(_0x174d03,_0x481cc6){return function(_0x24d721){if(_0x24d721){return _0x24d721[_0x9b00('0x21')](_0x174d03)['then'](function(_0x36ad1c){return _0x36ad1c;});}return null;};}function removeEntity(_0x193509,_0x337ef7){return function(_0x3734b0){if(_0x3734b0){return _0x3734b0[_0x9b00('0x22')]()[_0x9b00('0x23')](function(){var _0x357895=_0x3734b0[_0x9b00('0x24')]({'plain':!![]});var _0xd5c05c=_0x9b00('0x25');return db['UserProfileResource'][_0x9b00('0x22')]({'where':{'type':_0xd5c05c,'resourceId':_0x357895['id']}})[_0x9b00('0x23')](function(){return _0x3734b0;});})[_0x9b00('0x23')](function(){_0x193509['status'](0xcc)[_0x9b00('0x18')]();});}};}function handleEntityNotFound(_0x423b57,_0x1bab11){return function(_0x442648){if(!_0x442648){_0x423b57[_0x9b00('0x16')](0x194);}return _0x442648;};}function handleError(_0x1812bb,_0x3835c2){_0x3835c2=_0x3835c2||0x1f4;return function(_0x4295f0){logger['error'](_0x4295f0['stack']);if(_0x4295f0[_0x9b00('0x26')]){delete _0x4295f0[_0x9b00('0x26')];}_0x1812bb[_0x9b00('0x17')](_0x3835c2)['send'](_0x4295f0);};}exports['index']=function(_0x1a6e4c,_0x3b2f89){var _0x20a7e0={},_0x25695c={},_0x4f5b8c={'count':0x0,'rows':[]};var _0x2fcaea=_[_0x9b00('0x27')](db[_0x9b00('0x28')][_0x9b00('0x29')],function(_0x16ae40){return{'name':_0x16ae40[_0x9b00('0x2a')],'type':_0x16ae40['type']['key']};});_0x25695c[_0x9b00('0x2b')]=_[_0x9b00('0x27')](_0x2fcaea,_0x9b00('0x26'));_0x25695c['query']=_[_0x9b00('0x2c')](_0x1a6e4c[_0x9b00('0x2d')]);_0x25695c[_0x9b00('0x2e')]=_[_0x9b00('0x2f')](_0x25695c['model'],_0x25695c[_0x9b00('0x2d')]);_0x20a7e0['attributes']=_[_0x9b00('0x2f')](_0x25695c[_0x9b00('0x2b')],qs['fields'](_0x1a6e4c['query']['fields']));_0x20a7e0[_0x9b00('0x30')]=_0x20a7e0[_0x9b00('0x30')][_0x9b00('0x31')]?_0x20a7e0[_0x9b00('0x30')]:_0x25695c[_0x9b00('0x2b')];if(!_0x1a6e4c['query'][_0x9b00('0x32')](_0x9b00('0x33'))){_0x20a7e0[_0x9b00('0x1c')]=qs[_0x9b00('0x1c')](_0x1a6e4c['query']['limit']);_0x20a7e0['offset']=qs[_0x9b00('0x1b')](_0x1a6e4c[_0x9b00('0x2d')][_0x9b00('0x1b')]);}_0x20a7e0['order']=qs[_0x9b00('0x34')](_0x1a6e4c[_0x9b00('0x2d')]['sort']);_0x20a7e0[_0x9b00('0x35')]=qs[_0x9b00('0x2e')](_[_0x9b00('0x36')](_0x1a6e4c[_0x9b00('0x2d')],_0x25695c[_0x9b00('0x2e')]),_0x2fcaea);if(_0x1a6e4c[_0x9b00('0x2d')]['filter']){_0x20a7e0[_0x9b00('0x35')]=_[_0x9b00('0x37')](_0x20a7e0[_0x9b00('0x35')],{'$or':_[_0x9b00('0x27')](_0x2fcaea,function(_0x33620a){if(_0x33620a['type']!==_0x9b00('0x38')){var _0x3a5d18={};_0x3a5d18[_0x33620a[_0x9b00('0x26')]]={'$like':'%'+_0x1a6e4c[_0x9b00('0x2d')][_0x9b00('0x39')]+'%'};return _0x3a5d18;}})});}_0x20a7e0=_['merge']({},_0x20a7e0,_0x1a6e4c[_0x9b00('0x3a')]);var _0x542bca={'where':_0x20a7e0[_0x9b00('0x35')]};return db[_0x9b00('0x28')][_0x9b00('0x1a')](_0x542bca)['then'](function(_0xd81858){_0x4f5b8c[_0x9b00('0x1a')]=_0xd81858;if(_0x1a6e4c[_0x9b00('0x2d')][_0x9b00('0x3b')]){_0x20a7e0[_0x9b00('0x3c')]=[{'all':!![]}];}return db['Interval'][_0x9b00('0x3d')](_0x20a7e0);})[_0x9b00('0x23')](function(_0xfa9834){_0x4f5b8c[_0x9b00('0x3e')]=_0xfa9834;return _0x4f5b8c;})[_0x9b00('0x23')](respondWithFilteredResult(_0x3b2f89,_0x20a7e0))['catch'](handleError(_0x3b2f89,null));};exports['show']=function(_0x620f89,_0xc39d15){var _0x15b11c={'raw':!![],'where':{'id':_0x620f89['params']['id']}},_0xd659d1={};_0xd659d1[_0x9b00('0x2b')]=_[_0x9b00('0x2c')](db[_0x9b00('0x28')][_0x9b00('0x29')]);_0xd659d1['query']=_[_0x9b00('0x2c')](_0x620f89[_0x9b00('0x2d')]);_0xd659d1[_0x9b00('0x2e')]=_[_0x9b00('0x2f')](_0xd659d1[_0x9b00('0x2b')],_0xd659d1[_0x9b00('0x2d')]);_0x15b11c[_0x9b00('0x30')]=_[_0x9b00('0x2f')](_0xd659d1[_0x9b00('0x2b')],qs[_0x9b00('0x3f')](_0x620f89[_0x9b00('0x2d')][_0x9b00('0x3f')]));_0x15b11c[_0x9b00('0x30')]=_0x15b11c['attributes'][_0x9b00('0x31')]?_0x15b11c['attributes']:_0xd659d1[_0x9b00('0x2b')];if(_0x620f89[_0x9b00('0x2d')][_0x9b00('0x3b')]){_0x15b11c[_0x9b00('0x3c')]=[{'all':!![]}];}_0x15b11c=_[_0x9b00('0x37')]({},_0x15b11c,_0x620f89[_0x9b00('0x3a')]);return db['Interval'][_0x9b00('0x40')](_0x15b11c)['then'](handleEntityNotFound(_0xc39d15,null))[_0x9b00('0x23')](respondWithResult(_0xc39d15,null))['catch'](handleError(_0xc39d15,null));};exports[_0x9b00('0x41')]=function(_0x4bae5f,_0x26850f){return db[_0x9b00('0x28')][_0x9b00('0x41')](_0x4bae5f[_0x9b00('0x42')],{})['then'](function(_0xe38522){var _0x34436e=_0x4bae5f[_0x9b00('0x43')][_0x9b00('0x24')]({'plain':!![]});if(!_0x34436e)throw new Error(_0x9b00('0x44'));if(_0x34436e[_0x9b00('0x45')]==='user'){var _0x303b58=_0xe38522[_0x9b00('0x24')]({'plain':!![]});var _0x3a2703=_0x9b00('0x25');return db[_0x9b00('0x46')]['find']({'where':{'name':_0x3a2703,'userProfileId':_0x34436e['userProfileId']},'raw':!![]})[_0x9b00('0x23')](function(_0x4af277){if(_0x4af277&&_0x4af277[_0x9b00('0x47')]===0x0){return db[_0x9b00('0x48')][_0x9b00('0x41')]({'name':_0x303b58[_0x9b00('0x26')],'resourceId':_0x303b58['id'],'type':_0x4af277[_0x9b00('0x26')],'sectionId':_0x4af277['id']},{})[_0x9b00('0x23')](function(){return _0xe38522;});}else{return _0xe38522;}})[_0x9b00('0x49')](function(_0x41e468){logger[_0x9b00('0x4a')](_0x9b00('0x4b'),_0x41e468);throw _0x41e468;});}return _0xe38522;})[_0x9b00('0x23')](respondWithResult(_0x26850f,0xc9))[_0x9b00('0x49')](handleError(_0x26850f,null));};exports[_0x9b00('0x21')]=function(_0x57e3fa,_0x46089d){if(_0x57e3fa['body']['id']){delete _0x57e3fa[_0x9b00('0x42')]['id'];}return db[_0x9b00('0x28')][_0x9b00('0x40')]({'where':{'id':_0x57e3fa[_0x9b00('0x4c')]['id']}})['then'](handleEntityNotFound(_0x46089d,null))[_0x9b00('0x23')](saveUpdates(_0x57e3fa[_0x9b00('0x42')],null))[_0x9b00('0x23')](respondWithResult(_0x46089d,null))[_0x9b00('0x49')](handleError(_0x46089d,null));};exports[_0x9b00('0x22')]=function(_0x520db7,_0x4ee796){return db[_0x9b00('0x28')][_0x9b00('0x40')]({'where':{'id':_0x520db7[_0x9b00('0x4c')]['id']}})[_0x9b00('0x23')](handleEntityNotFound(_0x4ee796,null))[_0x9b00('0x23')](removeEntity(_0x4ee796,null))[_0x9b00('0x49')](handleError(_0x4ee796,null));};exports[_0x9b00('0x4d')]=function(_0x1b718f,_0xefdf01,_0x5e3f88){if(_0x1b718f['body']['id']){delete _0x1b718f[_0x9b00('0x42')]['id'];}return db[_0x9b00('0x28')][_0x9b00('0x40')]({'where':{'id':_0x1b718f[_0x9b00('0x4c')]['id']}})[_0x9b00('0x23')](handleEntityNotFound(_0xefdf01,null))[_0x9b00('0x23')](function(_0x941a0e){if(_0x941a0e){_0x1b718f['body'][_0x9b00('0x4e')]=_0x941a0e['id'];return db[_0x9b00('0x28')][_0x9b00('0x41')](_0x1b718f[_0x9b00('0x42')]);}})[_0x9b00('0x23')](respondWithResult(_0xefdf01,null))[_0x9b00('0x49')](handleError(_0xefdf01,null));};exports['getIntervals']=function(_0x1d34ea,_0x4ccae4,_0x3380d8){var _0xe87728={};var _0xe27779={};var _0x46eb5;var _0x273fcf;return db[_0x9b00('0x28')][_0x9b00('0x4f')]({'where':{'id':_0x1d34ea['params']['id']}})[_0x9b00('0x23')](handleEntityNotFound(_0x4ccae4,null))[_0x9b00('0x23')](function(_0xbde986){if(_0xbde986){_0x46eb5=_0xbde986;_0xe27779[_0x9b00('0x2b')]=_['keys'](db[_0x9b00('0x28')][_0x9b00('0x29')]);_0xe27779[_0x9b00('0x2d')]=_[_0x9b00('0x2c')](_0x1d34ea[_0x9b00('0x2d')]);_0xe27779[_0x9b00('0x2e')]=_[_0x9b00('0x2f')](_0xe27779[_0x9b00('0x2b')],_0xe27779[_0x9b00('0x2d')]);_0xe87728[_0x9b00('0x30')]=_[_0x9b00('0x2f')](_0xe27779[_0x9b00('0x2b')],qs[_0x9b00('0x3f')](_0x1d34ea[_0x9b00('0x2d')][_0x9b00('0x3f')]));_0xe87728[_0x9b00('0x30')]=_0xe87728[_0x9b00('0x30')][_0x9b00('0x31')]?_0xe87728[_0x9b00('0x30')]:_0xe27779[_0x9b00('0x2b')];_0xe87728[_0x9b00('0x50')]=qs[_0x9b00('0x34')](_0x1d34ea[_0x9b00('0x2d')][_0x9b00('0x34')]);_0xe87728[_0x9b00('0x35')]=qs[_0x9b00('0x2e')](_[_0x9b00('0x36')](_0x1d34ea[_0x9b00('0x2d')],_0xe27779[_0x9b00('0x2e')]));if(_0x1d34ea[_0x9b00('0x2d')][_0x9b00('0x39')]){_0xe87728[_0x9b00('0x35')]=_[_0x9b00('0x37')](_0xe87728[_0x9b00('0x35')],{'$or':_[_0x9b00('0x27')](_0xe87728[_0x9b00('0x30')],function(_0x30f6f5){var _0x2a4821={};_0x2a4821[_0x30f6f5]={'$like':'%'+_0x1d34ea[_0x9b00('0x2d')]['filter']+'%'};return _0x2a4821;})});}_0xe87728=_[_0x9b00('0x37')]({},_0xe87728,_0x1d34ea[_0x9b00('0x3a')]);return _0x46eb5['getIntervals'](_0xe87728);}})[_0x9b00('0x23')](function(_0x9683ac){if(_0x9683ac){_0x273fcf=_0x9683ac['length'];if(!_0x1d34ea[_0x9b00('0x2d')]['hasOwnProperty'](_0x9b00('0x33'))){_0xe87728['limit']=qs[_0x9b00('0x1c')](_0x1d34ea[_0x9b00('0x2d')][_0x9b00('0x1c')]);_0xe87728[_0x9b00('0x1b')]=qs[_0x9b00('0x1b')](_0x1d34ea['query'][_0x9b00('0x1b')]);}return _0x46eb5[_0x9b00('0x51')](_0xe87728);}})[_0x9b00('0x23')](function(_0xf5fa7d){if(_0xf5fa7d){return _0xf5fa7d?{'count':_0x273fcf,'rows':_0xf5fa7d}:null;}})[_0x9b00('0x23')](respondWithResult(_0x4ccae4,null))[_0x9b00('0x49')](handleError(_0x4ccae4,null));};exports[_0x9b00('0x52')]=function(_0x26adaf,_0x13a782,_0x5cff09){return db[_0x9b00('0x28')][_0x9b00('0x4f')]({'where':{'id':_0x26adaf[_0x9b00('0x4c')]['id']}})['then'](handleEntityNotFound(_0x13a782,null))[_0x9b00('0x23')](function(_0x379a72){if(_0x379a72){return db[_0x9b00('0x53')]['transaction'](function(_0x4b3766){return db[_0x9b00('0x28')]['destroy']({'where':{'IntervalId':_0x26adaf['params']['id']},'transaction':_0x4b3766})[_0x9b00('0x23')](function(_0x3434d7){var _0x47b408=_[_0x9b00('0x27')](_0x26adaf['body'],function(_0x238c7b){delete _0x238c7b['id'];_0x238c7b['IntervalId']=_0x26adaf[_0x9b00('0x4c')]['id'];return _0x238c7b;});return db[_0x9b00('0x28')]['bulkCreate'](_0x47b408,{'transaction':_0x4b3766});});})[_0x9b00('0x23')](function(){return db['Interval'][_0x9b00('0x3d')]({'where':{'IntervalId':_0x26adaf[_0x9b00('0x4c')]['id']}});});}})[_0x9b00('0x23')](respondWithResult(_0x13a782,null))['catch'](handleError(_0x13a782,null));};