Built motion from commit fd055180.|2.6.30
[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 _0x0d49=['rows','catch','show','rawAttributes','include','merge','create','body','role','Intervals','find','userProfileId','autoAssociation','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','params','addInterval','IntervalId','getIntervals','findOne','length','hasOwnProperty','addIntervals','sequelize','transaction','bulkCreate','eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','../../components/extensions/rewrite','sendStatus','status','end','json','offset','undefined','limit','count','Content-Range','apply','update','then','destroy','get','UserProfileResource','stack','send','map','Interval','type','key','model','name','query','keys','filters','attributes','intersection','fields','nolimit','order','sort','where','pick','VIRTUAL','filter','options','includeAll','findAll'];(function(_0x52c462,_0x52921c){var _0x4971c8=function(_0x851681){while(--_0x851681){_0x52c462['push'](_0x52c462['shift']());}};_0x4971c8(++_0x52921c);}(_0x0d49,0x12e));var _0x90d4=function(_0x581adb,_0x5ca091){_0x581adb=_0x581adb-0x0;var _0x20fa52=_0x0d49[_0x581adb];return _0x20fa52;};'use strict';var emlformat=require(_0x90d4('0x0'));var rimraf=require(_0x90d4('0x1'));var zipdir=require(_0x90d4('0x2'));var jsonpatch=require(_0x90d4('0x3'));var rp=require('request-promise');var moment=require(_0x90d4('0x4'));var BPromise=require(_0x90d4('0x5'));var Mustache=require('mustache');var util=require(_0x90d4('0x6'));var path=require(_0x90d4('0x7'));var sox=require(_0x90d4('0x8'));var csv=require(_0x90d4('0x9'));var ejs=require(_0x90d4('0xa'));var fs=require('fs');var fs_extra=require(_0x90d4('0xb'));var _=require(_0x90d4('0xc'));var squel=require(_0x90d4('0xd'));var crypto=require(_0x90d4('0xe'));var jsforce=require(_0x90d4('0xf'));var deskjs=require('desk.js');var toCsv=require(_0x90d4('0x9'));var querystring=require('querystring');var Papa=require(_0x90d4('0x10'));var Redis=require('ioredis');var authService=require(_0x90d4('0x11'));var qs=require(_0x90d4('0x12'));var as=require(_0x90d4('0x13'));var hardwareService=require(_0x90d4('0x14'));var logger=require('../../config/logger')(_0x90d4('0x15'));var utils=require(_0x90d4('0x16'));var config=require(_0x90d4('0x17'));var licenseUtil=require(_0x90d4('0x18'));var db=require(_0x90d4('0x19'))['db'];var extensions=require(_0x90d4('0x1a'));function respondWithStatusCode(_0x50cf90,_0x24b1a5){_0x24b1a5=_0x24b1a5||0xcc;return function(_0x5e069c){if(_0x5e069c){return _0x50cf90[_0x90d4('0x1b')](_0x24b1a5);}return _0x50cf90[_0x90d4('0x1c')](_0x24b1a5)[_0x90d4('0x1d')]();};}function respondWithResult(_0x4173ab,_0x2655fa){_0x2655fa=_0x2655fa||0xc8;return function(_0x3facae){if(_0x3facae){return _0x4173ab[_0x90d4('0x1c')](_0x2655fa)[_0x90d4('0x1e')](_0x3facae);}};}function respondWithFilteredResult(_0x27505a,_0x1c8d22){return function(_0x50f0c7){if(_0x50f0c7){var _0x3e6156=typeof _0x1c8d22[_0x90d4('0x1f')]===_0x90d4('0x20')&&typeof _0x1c8d22[_0x90d4('0x21')]==='undefined';var _0x39c4d9=_0x50f0c7[_0x90d4('0x22')];var _0x41fc0c=_0x3e6156?0x0:_0x1c8d22[_0x90d4('0x1f')];var _0x55c290=_0x3e6156?_0x50f0c7[_0x90d4('0x22')]:_0x1c8d22[_0x90d4('0x1f')]+_0x1c8d22[_0x90d4('0x21')];var _0x58066d;if(_0x55c290>=_0x39c4d9){_0x55c290=_0x39c4d9;_0x58066d=0xc8;}else{_0x58066d=0xce;}_0x27505a['status'](_0x58066d);return _0x27505a['set'](_0x90d4('0x23'),_0x41fc0c+'-'+_0x55c290+'/'+_0x39c4d9)['json'](_0x50f0c7);}return null;};}function patchUpdates(_0x478c66){return function(_0x2def4d){try{jsonpatch[_0x90d4('0x24')](_0x2def4d,_0x478c66,!![]);}catch(_0x44d2fb){return BPromise['reject'](_0x44d2fb);}return _0x2def4d['save']();};}function saveUpdates(_0x34ed9a,_0x408c6b){return function(_0x282eda){if(_0x282eda){return _0x282eda[_0x90d4('0x25')](_0x34ed9a)[_0x90d4('0x26')](function(_0x237f3c){return _0x237f3c;});}return null;};}function removeEntity(_0x15ebb1,_0x2249ff){return function(_0x4a9dcd){if(_0x4a9dcd){return _0x4a9dcd[_0x90d4('0x27')]()[_0x90d4('0x26')](function(){var _0x3504b0=_0x4a9dcd[_0x90d4('0x28')]({'plain':!![]});var _0x3e407d='Intervals';return db[_0x90d4('0x29')][_0x90d4('0x27')]({'where':{'type':_0x3e407d,'resourceId':_0x3504b0['id']}})[_0x90d4('0x26')](function(){return _0x4a9dcd;});})[_0x90d4('0x26')](function(){_0x15ebb1[_0x90d4('0x1c')](0xcc)[_0x90d4('0x1d')]();});}};}function handleEntityNotFound(_0x1e658c,_0x7869d8){return function(_0x530620){if(!_0x530620){_0x1e658c[_0x90d4('0x1b')](0x194);}return _0x530620;};}function handleError(_0x218341,_0x40c731){_0x40c731=_0x40c731||0x1f4;return function(_0x5b4d83){logger['error'](_0x5b4d83[_0x90d4('0x2a')]);if(_0x5b4d83['name']){delete _0x5b4d83['name'];}_0x218341[_0x90d4('0x1c')](_0x40c731)[_0x90d4('0x2b')](_0x5b4d83);};}exports['index']=function(_0x14c42d,_0x32064a){var _0x305099={},_0x8a54ee={},_0x33442c={'count':0x0,'rows':[]};var _0x24732d=_[_0x90d4('0x2c')](db[_0x90d4('0x2d')]['rawAttributes'],function(_0x168275){return{'name':_0x168275['fieldName'],'type':_0x168275[_0x90d4('0x2e')][_0x90d4('0x2f')]};});_0x8a54ee[_0x90d4('0x30')]=_['map'](_0x24732d,_0x90d4('0x31'));_0x8a54ee[_0x90d4('0x32')]=_[_0x90d4('0x33')](_0x14c42d[_0x90d4('0x32')]);_0x8a54ee[_0x90d4('0x34')]=_['intersection'](_0x8a54ee[_0x90d4('0x30')],_0x8a54ee[_0x90d4('0x32')]);_0x305099[_0x90d4('0x35')]=_[_0x90d4('0x36')](_0x8a54ee['model'],qs[_0x90d4('0x37')](_0x14c42d[_0x90d4('0x32')][_0x90d4('0x37')]));_0x305099['attributes']=_0x305099[_0x90d4('0x35')]['length']?_0x305099[_0x90d4('0x35')]:_0x8a54ee[_0x90d4('0x30')];if(!_0x14c42d[_0x90d4('0x32')]['hasOwnProperty'](_0x90d4('0x38'))){_0x305099[_0x90d4('0x21')]=qs[_0x90d4('0x21')](_0x14c42d['query']['limit']);_0x305099[_0x90d4('0x1f')]=qs[_0x90d4('0x1f')](_0x14c42d[_0x90d4('0x32')][_0x90d4('0x1f')]);}_0x305099[_0x90d4('0x39')]=qs[_0x90d4('0x3a')](_0x14c42d[_0x90d4('0x32')][_0x90d4('0x3a')]);_0x305099[_0x90d4('0x3b')]=qs[_0x90d4('0x34')](_[_0x90d4('0x3c')](_0x14c42d[_0x90d4('0x32')],_0x8a54ee[_0x90d4('0x34')]),_0x24732d);if(_0x14c42d[_0x90d4('0x32')]['filter']){_0x305099[_0x90d4('0x3b')]=_['merge'](_0x305099[_0x90d4('0x3b')],{'$or':_[_0x90d4('0x2c')](_0x24732d,function(_0x5417c5){if(_0x5417c5[_0x90d4('0x2e')]!==_0x90d4('0x3d')){var _0x537189={};_0x537189[_0x5417c5[_0x90d4('0x31')]]={'$like':'%'+_0x14c42d[_0x90d4('0x32')][_0x90d4('0x3e')]+'%'};return _0x537189;}})});}_0x305099=_['merge']({},_0x305099,_0x14c42d[_0x90d4('0x3f')]);var _0x1c0d6e={'where':_0x305099['where']};return db['Interval']['count'](_0x1c0d6e)[_0x90d4('0x26')](function(_0x5240c0){_0x33442c['count']=_0x5240c0;if(_0x14c42d[_0x90d4('0x32')][_0x90d4('0x40')]){_0x305099['include']=[{'all':!![]}];}return db[_0x90d4('0x2d')][_0x90d4('0x41')](_0x305099);})[_0x90d4('0x26')](function(_0x133f99){_0x33442c[_0x90d4('0x42')]=_0x133f99;return _0x33442c;})['then'](respondWithFilteredResult(_0x32064a,_0x305099))[_0x90d4('0x43')](handleError(_0x32064a,null));};exports[_0x90d4('0x44')]=function(_0x14721f,_0x5bf76d){var _0x17d677={'raw':!![],'where':{'id':_0x14721f['params']['id']}},_0x2c9820={};_0x2c9820['model']=_[_0x90d4('0x33')](db[_0x90d4('0x2d')][_0x90d4('0x45')]);_0x2c9820['query']=_['keys'](_0x14721f[_0x90d4('0x32')]);_0x2c9820[_0x90d4('0x34')]=_[_0x90d4('0x36')](_0x2c9820[_0x90d4('0x30')],_0x2c9820[_0x90d4('0x32')]);_0x17d677[_0x90d4('0x35')]=_[_0x90d4('0x36')](_0x2c9820['model'],qs['fields'](_0x14721f[_0x90d4('0x32')][_0x90d4('0x37')]));_0x17d677['attributes']=_0x17d677['attributes']['length']?_0x17d677[_0x90d4('0x35')]:_0x2c9820[_0x90d4('0x30')];if(_0x14721f[_0x90d4('0x32')][_0x90d4('0x40')]){_0x17d677[_0x90d4('0x46')]=[{'all':!![]}];}_0x17d677=_[_0x90d4('0x47')]({},_0x17d677,_0x14721f[_0x90d4('0x3f')]);return db[_0x90d4('0x2d')]['find'](_0x17d677)['then'](handleEntityNotFound(_0x5bf76d,null))[_0x90d4('0x26')](respondWithResult(_0x5bf76d,null))['catch'](handleError(_0x5bf76d,null));};exports['create']=function(_0x1b9a72,_0x2671bf){return db[_0x90d4('0x2d')][_0x90d4('0x48')](_0x1b9a72[_0x90d4('0x49')],{})[_0x90d4('0x26')](function(_0x4bfd59){var _0x29cf48=_0x1b9a72['user']['get']({'plain':!![]});if(!_0x29cf48)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x29cf48[_0x90d4('0x4a')]==='user'){var _0x4aac19=_0x4bfd59[_0x90d4('0x28')]({'plain':!![]});var _0x1565b2=_0x90d4('0x4b');return db['UserProfileSection'][_0x90d4('0x4c')]({'where':{'name':_0x1565b2,'userProfileId':_0x29cf48[_0x90d4('0x4d')]},'raw':!![]})['then'](function(_0x3135a2){if(_0x3135a2&&_0x3135a2[_0x90d4('0x4e')]===0x0){return db[_0x90d4('0x29')][_0x90d4('0x48')]({'name':_0x4aac19[_0x90d4('0x31')],'resourceId':_0x4aac19['id'],'type':_0x3135a2['name'],'sectionId':_0x3135a2['id']},{})['then'](function(){return _0x4bfd59;});}else{return _0x4bfd59;}})[_0x90d4('0x43')](function(_0x6938f1){logger[_0x90d4('0x4f')](_0x90d4('0x50'),_0x6938f1);throw _0x6938f1;});}return _0x4bfd59;})[_0x90d4('0x26')](respondWithResult(_0x2671bf,0xc9))[_0x90d4('0x43')](handleError(_0x2671bf,null));};exports[_0x90d4('0x25')]=function(_0x570f24,_0x4e963c){if(_0x570f24[_0x90d4('0x49')]['id']){delete _0x570f24[_0x90d4('0x49')]['id'];}return db['Interval'][_0x90d4('0x4c')]({'where':{'id':_0x570f24[_0x90d4('0x51')]['id']}})[_0x90d4('0x26')](handleEntityNotFound(_0x4e963c,null))[_0x90d4('0x26')](saveUpdates(_0x570f24[_0x90d4('0x49')],null))[_0x90d4('0x26')](respondWithResult(_0x4e963c,null))[_0x90d4('0x43')](handleError(_0x4e963c,null));};exports[_0x90d4('0x27')]=function(_0x46745a,_0x4b3287){return db['Interval'][_0x90d4('0x4c')]({'where':{'id':_0x46745a[_0x90d4('0x51')]['id']}})['then'](handleEntityNotFound(_0x4b3287,null))[_0x90d4('0x26')](removeEntity(_0x4b3287,null))[_0x90d4('0x43')](handleError(_0x4b3287,null));};exports[_0x90d4('0x52')]=function(_0x3bc1a4,_0x14d510,_0x1953c1){if(_0x3bc1a4['body']['id']){delete _0x3bc1a4[_0x90d4('0x49')]['id'];}return db[_0x90d4('0x2d')][_0x90d4('0x4c')]({'where':{'id':_0x3bc1a4['params']['id']}})[_0x90d4('0x26')](handleEntityNotFound(_0x14d510,null))[_0x90d4('0x26')](function(_0x242623){if(_0x242623){_0x3bc1a4[_0x90d4('0x49')][_0x90d4('0x53')]=_0x242623['id'];return db[_0x90d4('0x2d')][_0x90d4('0x48')](_0x3bc1a4[_0x90d4('0x49')]);}})[_0x90d4('0x26')](respondWithResult(_0x14d510,null))[_0x90d4('0x43')](handleError(_0x14d510,null));};exports[_0x90d4('0x54')]=function(_0x288eef,_0x1743d6,_0x4054b0){var _0x50cae6={};var _0x54c383={};var _0x8d4eac;var _0x85ad27;return db['Interval'][_0x90d4('0x55')]({'where':{'id':_0x288eef[_0x90d4('0x51')]['id']}})[_0x90d4('0x26')](handleEntityNotFound(_0x1743d6,null))['then'](function(_0x3b7f5c){if(_0x3b7f5c){_0x8d4eac=_0x3b7f5c;_0x54c383['model']=_[_0x90d4('0x33')](db[_0x90d4('0x2d')][_0x90d4('0x45')]);_0x54c383[_0x90d4('0x32')]=_[_0x90d4('0x33')](_0x288eef[_0x90d4('0x32')]);_0x54c383[_0x90d4('0x34')]=_[_0x90d4('0x36')](_0x54c383[_0x90d4('0x30')],_0x54c383[_0x90d4('0x32')]);_0x50cae6[_0x90d4('0x35')]=_[_0x90d4('0x36')](_0x54c383[_0x90d4('0x30')],qs[_0x90d4('0x37')](_0x288eef[_0x90d4('0x32')]['fields']));_0x50cae6[_0x90d4('0x35')]=_0x50cae6[_0x90d4('0x35')][_0x90d4('0x56')]?_0x50cae6[_0x90d4('0x35')]:_0x54c383[_0x90d4('0x30')];_0x50cae6[_0x90d4('0x39')]=qs[_0x90d4('0x3a')](_0x288eef[_0x90d4('0x32')][_0x90d4('0x3a')]);_0x50cae6['where']=qs[_0x90d4('0x34')](_[_0x90d4('0x3c')](_0x288eef[_0x90d4('0x32')],_0x54c383['filters']));if(_0x288eef[_0x90d4('0x32')][_0x90d4('0x3e')]){_0x50cae6['where']=_[_0x90d4('0x47')](_0x50cae6[_0x90d4('0x3b')],{'$or':_[_0x90d4('0x2c')](_0x50cae6[_0x90d4('0x35')],function(_0x31b0a8){var _0x6584d1={};_0x6584d1[_0x31b0a8]={'$like':'%'+_0x288eef[_0x90d4('0x32')][_0x90d4('0x3e')]+'%'};return _0x6584d1;})});}_0x50cae6=_[_0x90d4('0x47')]({},_0x50cae6,_0x288eef[_0x90d4('0x3f')]);return _0x8d4eac[_0x90d4('0x54')](_0x50cae6);}})['then'](function(_0xed940b){if(_0xed940b){_0x85ad27=_0xed940b[_0x90d4('0x56')];if(!_0x288eef[_0x90d4('0x32')][_0x90d4('0x57')]('nolimit')){_0x50cae6[_0x90d4('0x21')]=qs[_0x90d4('0x21')](_0x288eef[_0x90d4('0x32')][_0x90d4('0x21')]);_0x50cae6[_0x90d4('0x1f')]=qs['offset'](_0x288eef['query'][_0x90d4('0x1f')]);}return _0x8d4eac['getIntervals'](_0x50cae6);}})[_0x90d4('0x26')](function(_0x2729d5){if(_0x2729d5){return _0x2729d5?{'count':_0x85ad27,'rows':_0x2729d5}:null;}})['then'](respondWithResult(_0x1743d6,null))[_0x90d4('0x43')](handleError(_0x1743d6,null));};exports[_0x90d4('0x58')]=function(_0x3e12c2,_0x380319,_0x874e1d){return db[_0x90d4('0x2d')][_0x90d4('0x55')]({'where':{'id':_0x3e12c2['params']['id']}})[_0x90d4('0x26')](handleEntityNotFound(_0x380319,null))[_0x90d4('0x26')](function(_0x5da185){if(_0x5da185){return db[_0x90d4('0x59')][_0x90d4('0x5a')](function(_0x24c73){return db['Interval'][_0x90d4('0x27')]({'where':{'IntervalId':_0x3e12c2['params']['id']},'transaction':_0x24c73})[_0x90d4('0x26')](function(_0x117147){var _0x530451=_[_0x90d4('0x2c')](_0x3e12c2['body'],function(_0x38fc4f){delete _0x38fc4f['id'];_0x38fc4f[_0x90d4('0x53')]=_0x3e12c2[_0x90d4('0x51')]['id'];return _0x38fc4f;});return db[_0x90d4('0x2d')][_0x90d4('0x5b')](_0x530451,{'transaction':_0x24c73});});})[_0x90d4('0x26')](function(){return db['Interval'][_0x90d4('0x41')]({'where':{'IntervalId':_0x3e12c2['params']['id']}});});}})[_0x90d4('0x26')](respondWithResult(_0x380319,null))[_0x90d4('0x43')](handleError(_0x380319,null));};