Built motion from commit c116dc8b.|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 _0x8051=['order','map','getIntervals','findOne','transaction','bulkCreate','rimraf','zip-dir','moment','bluebird','util','path','sox','to-csv','ejs','lodash','crypto','jsforce','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/environment','../../config/license/util','../../mysqldb','../../components/extensions/rewrite','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','reject','save','update','then','destroy','get','Intervals','stack','name','send','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','fields','attributes','length','hasOwnProperty','nolimit','sort','where','pick','filter','merge','VIRTUAL','options','includeAll','include','Interval','findAll','catch','show','params','create','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','find','userProfileId','autoAssociation','UserProfileResource','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','body','IntervalId'];(function(_0x5e50a5,_0x35204a){var _0x31d4a0=function(_0x3dd91e){while(--_0x3dd91e){_0x5e50a5['push'](_0x5e50a5['shift']());}};_0x31d4a0(++_0x35204a);}(_0x8051,0x1c3));var _0x1805=function(_0x42d2fe,_0x3a9661){_0x42d2fe=_0x42d2fe-0x0;var _0x4a8f16=_0x8051[_0x42d2fe];return _0x4a8f16;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x1805('0x0'));var zipdir=require(_0x1805('0x1'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0x1805('0x2'));var BPromise=require(_0x1805('0x3'));var Mustache=require('mustache');var util=require(_0x1805('0x4'));var path=require(_0x1805('0x5'));var sox=require(_0x1805('0x6'));var csv=require(_0x1805('0x7'));var ejs=require(_0x1805('0x8'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x1805('0x9'));var squel=require('squel');var crypto=require(_0x1805('0xa'));var jsforce=require(_0x1805('0xb'));var deskjs=require('desk.js');var toCsv=require(_0x1805('0x7'));var querystring=require('querystring');var Papa=require(_0x1805('0xc'));var Redis=require(_0x1805('0xd'));var authService=require(_0x1805('0xe'));var qs=require('../../components/parsers/qs');var as=require(_0x1805('0xf'));var hardwareService=require(_0x1805('0x10'));var logger=require('../../config/logger')(_0x1805('0x11'));var utils=require('../../config/utils');var config=require(_0x1805('0x12'));var licenseUtil=require(_0x1805('0x13'));var db=require(_0x1805('0x14'))['db'];var extensions=require(_0x1805('0x15'));function respondWithStatusCode(_0x5de0dd,_0x3196bc){_0x3196bc=_0x3196bc||0xcc;return function(_0x3fecdb){if(_0x3fecdb){return _0x5de0dd[_0x1805('0x16')](_0x3196bc);}return _0x5de0dd[_0x1805('0x17')](_0x3196bc)[_0x1805('0x18')]();};}function respondWithResult(_0x444b8d,_0x334a9d){_0x334a9d=_0x334a9d||0xc8;return function(_0x959902){if(_0x959902){return _0x444b8d[_0x1805('0x17')](_0x334a9d)[_0x1805('0x19')](_0x959902);}};}function respondWithFilteredResult(_0x43b888,_0x379116){return function(_0x270fed){if(_0x270fed){var _0x105155=typeof _0x379116[_0x1805('0x1a')]===_0x1805('0x1b')&&typeof _0x379116[_0x1805('0x1c')]===_0x1805('0x1b');var _0x34c69b=_0x270fed['count'];var _0x22fd94=_0x105155?0x0:_0x379116[_0x1805('0x1a')];var _0x103ba9=_0x105155?_0x270fed[_0x1805('0x1d')]:_0x379116[_0x1805('0x1a')]+_0x379116['limit'];var _0x141ea0;if(_0x103ba9>=_0x34c69b){_0x103ba9=_0x34c69b;_0x141ea0=0xc8;}else{_0x141ea0=0xce;}_0x43b888[_0x1805('0x17')](_0x141ea0);return _0x43b888[_0x1805('0x1e')](_0x1805('0x1f'),_0x22fd94+'-'+_0x103ba9+'/'+_0x34c69b)[_0x1805('0x19')](_0x270fed);}return null;};}function patchUpdates(_0x6865a4){return function(_0x401274){try{jsonpatch['apply'](_0x401274,_0x6865a4,!![]);}catch(_0x32da10){return BPromise[_0x1805('0x20')](_0x32da10);}return _0x401274[_0x1805('0x21')]();};}function saveUpdates(_0x3c4496,_0x3bfd78){return function(_0xe2adda){if(_0xe2adda){return _0xe2adda[_0x1805('0x22')](_0x3c4496)[_0x1805('0x23')](function(_0x269761){return _0x269761;});}return null;};}function removeEntity(_0x2d797a,_0x46c407){return function(_0x275c03){if(_0x275c03){return _0x275c03[_0x1805('0x24')]()[_0x1805('0x23')](function(){var _0x296d19=_0x275c03[_0x1805('0x25')]({'plain':!![]});var _0x338352=_0x1805('0x26');return db['UserProfileResource'][_0x1805('0x24')]({'where':{'type':_0x338352,'resourceId':_0x296d19['id']}})[_0x1805('0x23')](function(){return _0x275c03;});})['then'](function(){_0x2d797a[_0x1805('0x17')](0xcc)[_0x1805('0x18')]();});}};}function handleEntityNotFound(_0x5a0aa2,_0x59ce65){return function(_0x1b075b){if(!_0x1b075b){_0x5a0aa2[_0x1805('0x16')](0x194);}return _0x1b075b;};}function handleError(_0x73556c,_0x4519d8){_0x4519d8=_0x4519d8||0x1f4;return function(_0x7b40f5){logger['error'](_0x7b40f5[_0x1805('0x27')]);if(_0x7b40f5['name']){delete _0x7b40f5[_0x1805('0x28')];}_0x73556c[_0x1805('0x17')](_0x4519d8)[_0x1805('0x29')](_0x7b40f5);};}exports['index']=function(_0x4c55e3,_0x34cbed){var _0x1cf6bf={},_0x4fb05d={},_0x38a808={'count':0x0,'rows':[]};var _0x9d05a2=_['map'](db['Interval'][_0x1805('0x2a')],function(_0x1f616a){return{'name':_0x1f616a[_0x1805('0x2b')],'type':_0x1f616a[_0x1805('0x2c')][_0x1805('0x2d')]};});_0x4fb05d[_0x1805('0x2e')]=_['map'](_0x9d05a2,_0x1805('0x28'));_0x4fb05d[_0x1805('0x2f')]=_[_0x1805('0x30')](_0x4c55e3[_0x1805('0x2f')]);_0x4fb05d[_0x1805('0x31')]=_[_0x1805('0x32')](_0x4fb05d[_0x1805('0x2e')],_0x4fb05d[_0x1805('0x2f')]);_0x1cf6bf['attributes']=_[_0x1805('0x32')](_0x4fb05d[_0x1805('0x2e')],qs[_0x1805('0x33')](_0x4c55e3[_0x1805('0x2f')]['fields']));_0x1cf6bf[_0x1805('0x34')]=_0x1cf6bf[_0x1805('0x34')][_0x1805('0x35')]?_0x1cf6bf[_0x1805('0x34')]:_0x4fb05d['model'];if(!_0x4c55e3[_0x1805('0x2f')][_0x1805('0x36')](_0x1805('0x37'))){_0x1cf6bf[_0x1805('0x1c')]=qs[_0x1805('0x1c')](_0x4c55e3[_0x1805('0x2f')][_0x1805('0x1c')]);_0x1cf6bf[_0x1805('0x1a')]=qs[_0x1805('0x1a')](_0x4c55e3['query'][_0x1805('0x1a')]);}_0x1cf6bf['order']=qs[_0x1805('0x38')](_0x4c55e3[_0x1805('0x2f')][_0x1805('0x38')]);_0x1cf6bf[_0x1805('0x39')]=qs[_0x1805('0x31')](_[_0x1805('0x3a')](_0x4c55e3[_0x1805('0x2f')],_0x4fb05d[_0x1805('0x31')]),_0x9d05a2);if(_0x4c55e3['query'][_0x1805('0x3b')]){_0x1cf6bf[_0x1805('0x39')]=_[_0x1805('0x3c')](_0x1cf6bf[_0x1805('0x39')],{'$or':_['map'](_0x9d05a2,function(_0x5394c7){if(_0x5394c7[_0x1805('0x2c')]!==_0x1805('0x3d')){var _0x502342={};_0x502342[_0x5394c7[_0x1805('0x28')]]={'$like':'%'+_0x4c55e3[_0x1805('0x2f')][_0x1805('0x3b')]+'%'};return _0x502342;}})});}_0x1cf6bf=_[_0x1805('0x3c')]({},_0x1cf6bf,_0x4c55e3[_0x1805('0x3e')]);var _0x5170c5={'where':_0x1cf6bf[_0x1805('0x39')]};return db['Interval'][_0x1805('0x1d')](_0x5170c5)[_0x1805('0x23')](function(_0x1259fb){_0x38a808[_0x1805('0x1d')]=_0x1259fb;if(_0x4c55e3['query'][_0x1805('0x3f')]){_0x1cf6bf[_0x1805('0x40')]=[{'all':!![]}];}return db[_0x1805('0x41')][_0x1805('0x42')](_0x1cf6bf);})['then'](function(_0x1e6cad){_0x38a808['rows']=_0x1e6cad;return _0x38a808;})[_0x1805('0x23')](respondWithFilteredResult(_0x34cbed,_0x1cf6bf))[_0x1805('0x43')](handleError(_0x34cbed,null));};exports[_0x1805('0x44')]=function(_0x5e0d2f,_0x32c943){var _0x3c1a89={'raw':!![],'where':{'id':_0x5e0d2f[_0x1805('0x45')]['id']}},_0x3d86f8={};_0x3d86f8['model']=_[_0x1805('0x30')](db[_0x1805('0x41')][_0x1805('0x2a')]);_0x3d86f8[_0x1805('0x2f')]=_[_0x1805('0x30')](_0x5e0d2f[_0x1805('0x2f')]);_0x3d86f8[_0x1805('0x31')]=_['intersection'](_0x3d86f8[_0x1805('0x2e')],_0x3d86f8['query']);_0x3c1a89['attributes']=_['intersection'](_0x3d86f8[_0x1805('0x2e')],qs[_0x1805('0x33')](_0x5e0d2f['query']['fields']));_0x3c1a89[_0x1805('0x34')]=_0x3c1a89[_0x1805('0x34')][_0x1805('0x35')]?_0x3c1a89['attributes']:_0x3d86f8['model'];if(_0x5e0d2f[_0x1805('0x2f')][_0x1805('0x3f')]){_0x3c1a89[_0x1805('0x40')]=[{'all':!![]}];}_0x3c1a89=_[_0x1805('0x3c')]({},_0x3c1a89,_0x5e0d2f[_0x1805('0x3e')]);return db[_0x1805('0x41')]['find'](_0x3c1a89)['then'](handleEntityNotFound(_0x32c943,null))['then'](respondWithResult(_0x32c943,null))[_0x1805('0x43')](handleError(_0x32c943,null));};exports[_0x1805('0x46')]=function(_0x26b29d,_0x3dbc58){return db[_0x1805('0x41')][_0x1805('0x46')](_0x26b29d['body'],{})[_0x1805('0x23')](function(_0x12fdcf){var _0x40ddf1=_0x26b29d[_0x1805('0x47')][_0x1805('0x25')]({'plain':!![]});if(!_0x40ddf1)throw new Error(_0x1805('0x48'));if(_0x40ddf1[_0x1805('0x49')]==='user'){var _0x3423e8=_0x12fdcf[_0x1805('0x25')]({'plain':!![]});var _0x3c820b=_0x1805('0x26');return db[_0x1805('0x4a')][_0x1805('0x4b')]({'where':{'name':_0x3c820b,'userProfileId':_0x40ddf1[_0x1805('0x4c')]},'raw':!![]})[_0x1805('0x23')](function(_0x3f61a1){if(_0x3f61a1&&_0x3f61a1[_0x1805('0x4d')]===0x0){return db[_0x1805('0x4e')][_0x1805('0x46')]({'name':_0x3423e8['name'],'resourceId':_0x3423e8['id'],'type':_0x3f61a1[_0x1805('0x28')],'sectionId':_0x3f61a1['id']},{})['then'](function(){return _0x12fdcf;});}else{return _0x12fdcf;}})[_0x1805('0x43')](function(_0x1c8a33){logger[_0x1805('0x4f')](_0x1805('0x50'),_0x1c8a33);throw _0x1c8a33;});}return _0x12fdcf;})[_0x1805('0x23')](respondWithResult(_0x3dbc58,0xc9))[_0x1805('0x43')](handleError(_0x3dbc58,null));};exports[_0x1805('0x22')]=function(_0xbd0ac,_0x125536){if(_0xbd0ac[_0x1805('0x51')]['id']){delete _0xbd0ac[_0x1805('0x51')]['id'];}return db['Interval'][_0x1805('0x4b')]({'where':{'id':_0xbd0ac['params']['id']}})[_0x1805('0x23')](handleEntityNotFound(_0x125536,null))[_0x1805('0x23')](saveUpdates(_0xbd0ac[_0x1805('0x51')],null))[_0x1805('0x23')](respondWithResult(_0x125536,null))[_0x1805('0x43')](handleError(_0x125536,null));};exports[_0x1805('0x24')]=function(_0xa96546,_0x2c8beb){return db[_0x1805('0x41')][_0x1805('0x4b')]({'where':{'id':_0xa96546[_0x1805('0x45')]['id']}})[_0x1805('0x23')](handleEntityNotFound(_0x2c8beb,null))['then'](removeEntity(_0x2c8beb,null))[_0x1805('0x43')](handleError(_0x2c8beb,null));};exports['addInterval']=function(_0x25a107,_0x14c7c3,_0x3d14a6){if(_0x25a107['body']['id']){delete _0x25a107[_0x1805('0x51')]['id'];}return db[_0x1805('0x41')]['find']({'where':{'id':_0x25a107[_0x1805('0x45')]['id']}})[_0x1805('0x23')](handleEntityNotFound(_0x14c7c3,null))[_0x1805('0x23')](function(_0x4b0e06){if(_0x4b0e06){_0x25a107[_0x1805('0x51')][_0x1805('0x52')]=_0x4b0e06['id'];return db['Interval'][_0x1805('0x46')](_0x25a107[_0x1805('0x51')]);}})[_0x1805('0x23')](respondWithResult(_0x14c7c3,null))[_0x1805('0x43')](handleError(_0x14c7c3,null));};exports['getIntervals']=function(_0x4a0efd,_0x4fd33c,_0x45e6d9){var _0x5959ed={};var _0x59dd38={};var _0x10ecc2;var _0x28f158;return db[_0x1805('0x41')]['findOne']({'where':{'id':_0x4a0efd[_0x1805('0x45')]['id']}})['then'](handleEntityNotFound(_0x4fd33c,null))[_0x1805('0x23')](function(_0x4a2a17){if(_0x4a2a17){_0x10ecc2=_0x4a2a17;_0x59dd38[_0x1805('0x2e')]=_[_0x1805('0x30')](db[_0x1805('0x41')][_0x1805('0x2a')]);_0x59dd38[_0x1805('0x2f')]=_[_0x1805('0x30')](_0x4a0efd[_0x1805('0x2f')]);_0x59dd38['filters']=_['intersection'](_0x59dd38['model'],_0x59dd38['query']);_0x5959ed['attributes']=_[_0x1805('0x32')](_0x59dd38[_0x1805('0x2e')],qs[_0x1805('0x33')](_0x4a0efd[_0x1805('0x2f')][_0x1805('0x33')]));_0x5959ed['attributes']=_0x5959ed[_0x1805('0x34')][_0x1805('0x35')]?_0x5959ed['attributes']:_0x59dd38['model'];_0x5959ed[_0x1805('0x53')]=qs[_0x1805('0x38')](_0x4a0efd['query']['sort']);_0x5959ed[_0x1805('0x39')]=qs[_0x1805('0x31')](_[_0x1805('0x3a')](_0x4a0efd['query'],_0x59dd38[_0x1805('0x31')]));if(_0x4a0efd[_0x1805('0x2f')][_0x1805('0x3b')]){_0x5959ed[_0x1805('0x39')]=_[_0x1805('0x3c')](_0x5959ed[_0x1805('0x39')],{'$or':_[_0x1805('0x54')](_0x5959ed['attributes'],function(_0x427a32){var _0x34ecaa={};_0x34ecaa[_0x427a32]={'$like':'%'+_0x4a0efd[_0x1805('0x2f')][_0x1805('0x3b')]+'%'};return _0x34ecaa;})});}_0x5959ed=_[_0x1805('0x3c')]({},_0x5959ed,_0x4a0efd[_0x1805('0x3e')]);return _0x10ecc2['getIntervals'](_0x5959ed);}})[_0x1805('0x23')](function(_0x4b2988){if(_0x4b2988){_0x28f158=_0x4b2988[_0x1805('0x35')];if(!_0x4a0efd['query'][_0x1805('0x36')]('nolimit')){_0x5959ed[_0x1805('0x1c')]=qs[_0x1805('0x1c')](_0x4a0efd[_0x1805('0x2f')][_0x1805('0x1c')]);_0x5959ed[_0x1805('0x1a')]=qs[_0x1805('0x1a')](_0x4a0efd[_0x1805('0x2f')][_0x1805('0x1a')]);}return _0x10ecc2[_0x1805('0x55')](_0x5959ed);}})[_0x1805('0x23')](function(_0xdc1570){if(_0xdc1570){return _0xdc1570?{'count':_0x28f158,'rows':_0xdc1570}:null;}})['then'](respondWithResult(_0x4fd33c,null))['catch'](handleError(_0x4fd33c,null));};exports['addIntervals']=function(_0x53c621,_0x49d4da,_0x4228c6){return db[_0x1805('0x41')][_0x1805('0x56')]({'where':{'id':_0x53c621[_0x1805('0x45')]['id']}})[_0x1805('0x23')](handleEntityNotFound(_0x49d4da,null))['then'](function(_0x3145b4){if(_0x3145b4){return db['sequelize'][_0x1805('0x57')](function(_0x4ea367){return db[_0x1805('0x41')]['destroy']({'where':{'IntervalId':_0x53c621[_0x1805('0x45')]['id']},'transaction':_0x4ea367})['then'](function(_0x32fd43){var _0x28056a=_[_0x1805('0x54')](_0x53c621[_0x1805('0x51')],function(_0x35261f){delete _0x35261f['id'];_0x35261f['IntervalId']=_0x53c621[_0x1805('0x45')]['id'];return _0x35261f;});return db[_0x1805('0x41')][_0x1805('0x58')](_0x28056a,{'transaction':_0x4ea367});});})[_0x1805('0x23')](function(){return db['Interval'][_0x1805('0x42')]({'where':{'IntervalId':_0x53c621[_0x1805('0x45')]['id']}});});}})[_0x1805('0x23')](respondWithResult(_0x49d4da,null))[_0x1805('0x43')](handleError(_0x49d4da,null));};