8368ad15012530b9383354101b9e29efa4367dcc
[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 _0xf84f=['Interval','fieldName','type','key','model','query','intersection','fields','attributes','length','hasOwnProperty','nolimit','limit','order','sort','where','pick','filters','filter','options','includeAll','include','findAll','rows','catch','params','keys','rawAttributes','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','find','autoAssociation','create','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','body','IntervalId','findOne','getIntervals','addIntervals','sequelize','transaction','bulkCreate','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','querystring','papaparse','../../config/license/hardware','api','../../config/environment','../../config/license/util','../../components/extensions/rewrite','sendStatus','status','end','json','offset','undefined','count','set','Content-Range','reject','save','update','destroy','then','get','Intervals','UserProfileResource','error','name','send','render','merge','contact','message','interaction','account','index','map'];(function(_0xc9191e,_0x17842f){var _0x32b242=function(_0xc1fd81){while(--_0xc1fd81){_0xc9191e['push'](_0xc9191e['shift']());}};_0x32b242(++_0x17842f);}(_0xf84f,0x149));var _0xff84=function(_0x481161,_0x38bc77){_0x481161=_0x481161-0x0;var _0x35a129=_0xf84f[_0x481161];return _0x35a129;};'use strict';var emlformat=require(_0xff84('0x0'));var rimraf=require(_0xff84('0x1'));var zipdir=require(_0xff84('0x2'));var jsonpatch=require(_0xff84('0x3'));var rp=require(_0xff84('0x4'));var moment=require(_0xff84('0x5'));var BPromise=require('bluebird');var Mustache=require(_0xff84('0x6'));var util=require(_0xff84('0x7'));var path=require(_0xff84('0x8'));var sox=require(_0xff84('0x9'));var csv=require(_0xff84('0xa'));var ejs=require(_0xff84('0xb'));var fs=require('fs');var fs_extra=require(_0xff84('0xc'));var _=require(_0xff84('0xd'));var squel=require(_0xff84('0xe'));var crypto=require(_0xff84('0xf'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0xff84('0xa'));var querystring=require(_0xff84('0x10'));var Papa=require(_0xff84('0x11'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xff84('0x12'));var logger=require('../../config/logger')(_0xff84('0x13'));var utils=require('../../config/utils');var config=require(_0xff84('0x14'));var licenseUtil=require(_0xff84('0x15'));var db=require('../../mysqldb')['db'];var extensions=require(_0xff84('0x16'));function respondWithStatusCode(_0xd67e57,_0x39720b){_0x39720b=_0x39720b||0xcc;return function(_0x80a2ad){if(_0x80a2ad){return _0xd67e57[_0xff84('0x17')](_0x39720b);}return _0xd67e57[_0xff84('0x18')](_0x39720b)[_0xff84('0x19')]();};}function respondWithResult(_0x69944a,_0x5e52b1){_0x5e52b1=_0x5e52b1||0xc8;return function(_0x418ba5){if(_0x418ba5){return _0x69944a[_0xff84('0x18')](_0x5e52b1)[_0xff84('0x1a')](_0x418ba5);}};}function respondWithFilteredResult(_0x4e1836,_0x5900e8){return function(_0x224992){if(_0x224992){var _0x382071=typeof _0x5900e8[_0xff84('0x1b')]===_0xff84('0x1c')&&typeof _0x5900e8['limit']==='undefined';var _0x1f252a=_0x224992[_0xff84('0x1d')];var _0x51143b=_0x382071?0x0:_0x5900e8['offset'];var _0x4b585d=_0x382071?_0x224992[_0xff84('0x1d')]:_0x5900e8['offset']+_0x5900e8['limit'];var _0x3b4d0a;if(_0x4b585d>=_0x1f252a){_0x4b585d=_0x1f252a;_0x3b4d0a=0xc8;}else{_0x3b4d0a=0xce;}_0x4e1836['status'](_0x3b4d0a);return _0x4e1836[_0xff84('0x1e')](_0xff84('0x1f'),_0x51143b+'-'+_0x4b585d+'/'+_0x1f252a)['json'](_0x224992);}return null;};}function patchUpdates(_0x4aa426){return function(_0x557391){try{jsonpatch['apply'](_0x557391,_0x4aa426,!![]);}catch(_0x4d06da){return BPromise[_0xff84('0x20')](_0x4d06da);}return _0x557391[_0xff84('0x21')]();};}function saveUpdates(_0x4643a5,_0x9a46b6){return function(_0x26e2a9){if(_0x26e2a9){return _0x26e2a9[_0xff84('0x22')](_0x4643a5)['then'](function(_0x369fd7){return _0x369fd7;});}return null;};}function removeEntity(_0x47ea96,_0x196d7a){return function(_0x18583e){if(_0x18583e){return _0x18583e[_0xff84('0x23')]()[_0xff84('0x24')](function(){var _0x2a0502=_0x18583e[_0xff84('0x25')]({'plain':!![]});var _0x548353=_0xff84('0x26');return db[_0xff84('0x27')][_0xff84('0x23')]({'where':{'type':_0x548353,'resourceId':_0x2a0502['id']}})[_0xff84('0x24')](function(){return _0x18583e;});})['then'](function(){_0x47ea96[_0xff84('0x18')](0xcc)[_0xff84('0x19')]();});}};}function handleEntityNotFound(_0x3e0af0,_0x4af6fb){return function(_0x34b48c){if(!_0x34b48c){_0x3e0af0[_0xff84('0x17')](0x194);}return _0x34b48c;};}function handleError(_0x189756,_0x56f1b5){_0x56f1b5=_0x56f1b5||0x1f4;return function(_0x3f90f6){logger[_0xff84('0x28')](_0x3f90f6['stack']);if(_0x3f90f6[_0xff84('0x29')]){delete _0x3f90f6[_0xff84('0x29')];}_0x189756[_0xff84('0x18')](_0x56f1b5)[_0xff84('0x2a')](_0x3f90f6);};}function getMustacheRender(_0x498915,_0x1889ab){return Mustache[_0xff84('0x2b')](_0x498915,_[_0xff84('0x2c')](_0x1889ab['body'],{'contact':_0x1889ab[_0xff84('0x2d')],'message':_0x1889ab[_0xff84('0x2e')],'agent':_0x1889ab['agent'],'interaction':_0x1889ab[_0xff84('0x2f')],'account':_0x1889ab[_0xff84('0x30')]}))||'';}exports[_0xff84('0x31')]=function(_0x3ca0ec,_0xac8c0e){var _0x2acb00={},_0x219c08={},_0x9410f8={'count':0x0,'rows':[]};var _0x36c943=_[_0xff84('0x32')](db[_0xff84('0x33')]['rawAttributes'],function(_0x2e7b15){return{'name':_0x2e7b15[_0xff84('0x34')],'type':_0x2e7b15[_0xff84('0x35')][_0xff84('0x36')]};});_0x219c08[_0xff84('0x37')]=_[_0xff84('0x32')](_0x36c943,_0xff84('0x29'));_0x219c08[_0xff84('0x38')]=_['keys'](_0x3ca0ec[_0xff84('0x38')]);_0x219c08['filters']=_['intersection'](_0x219c08[_0xff84('0x37')],_0x219c08[_0xff84('0x38')]);_0x2acb00['attributes']=_[_0xff84('0x39')](_0x219c08[_0xff84('0x37')],qs[_0xff84('0x3a')](_0x3ca0ec[_0xff84('0x38')]['fields']));_0x2acb00[_0xff84('0x3b')]=_0x2acb00[_0xff84('0x3b')][_0xff84('0x3c')]?_0x2acb00[_0xff84('0x3b')]:_0x219c08[_0xff84('0x37')];if(!_0x3ca0ec[_0xff84('0x38')][_0xff84('0x3d')](_0xff84('0x3e'))){_0x2acb00[_0xff84('0x3f')]=qs[_0xff84('0x3f')](_0x3ca0ec[_0xff84('0x38')][_0xff84('0x3f')]);_0x2acb00['offset']=qs[_0xff84('0x1b')](_0x3ca0ec['query']['offset']);}_0x2acb00[_0xff84('0x40')]=qs['sort'](_0x3ca0ec[_0xff84('0x38')][_0xff84('0x41')]);_0x2acb00[_0xff84('0x42')]=qs['filters'](_[_0xff84('0x43')](_0x3ca0ec[_0xff84('0x38')],_0x219c08[_0xff84('0x44')]),_0x36c943);if(_0x3ca0ec['query']['filter']){_0x2acb00[_0xff84('0x42')]=_['merge'](_0x2acb00[_0xff84('0x42')],{'$or':_[_0xff84('0x32')](_0x36c943,function(_0x4c3167){if(_0x4c3167[_0xff84('0x35')]!=='VIRTUAL'){var _0x3d8a30={};_0x3d8a30[_0x4c3167['name']]={'$like':'%'+_0x3ca0ec[_0xff84('0x38')][_0xff84('0x45')]+'%'};return _0x3d8a30;}})});}_0x2acb00=_[_0xff84('0x2c')]({},_0x2acb00,_0x3ca0ec[_0xff84('0x46')]);var _0x39714b={'where':_0x2acb00[_0xff84('0x42')]};return db[_0xff84('0x33')][_0xff84('0x1d')](_0x39714b)[_0xff84('0x24')](function(_0x2766ce){_0x9410f8[_0xff84('0x1d')]=_0x2766ce;if(_0x3ca0ec[_0xff84('0x38')][_0xff84('0x47')]){_0x2acb00[_0xff84('0x48')]=[{'all':!![]}];}return db[_0xff84('0x33')][_0xff84('0x49')](_0x2acb00);})['then'](function(_0x33c5d8){_0x9410f8[_0xff84('0x4a')]=_0x33c5d8;return _0x9410f8;})[_0xff84('0x24')](respondWithFilteredResult(_0xac8c0e,_0x2acb00))[_0xff84('0x4b')](handleError(_0xac8c0e,null));};exports['show']=function(_0x5f0229,_0x2117d5){var _0x5b9fbf={'raw':!![],'where':{'id':_0x5f0229[_0xff84('0x4c')]['id']}},_0x38bb2c={};_0x38bb2c[_0xff84('0x37')]=_[_0xff84('0x4d')](db['Interval'][_0xff84('0x4e')]);_0x38bb2c[_0xff84('0x38')]=_['keys'](_0x5f0229[_0xff84('0x38')]);_0x38bb2c[_0xff84('0x44')]=_['intersection'](_0x38bb2c[_0xff84('0x37')],_0x38bb2c['query']);_0x5b9fbf[_0xff84('0x3b')]=_[_0xff84('0x39')](_0x38bb2c[_0xff84('0x37')],qs[_0xff84('0x3a')](_0x5f0229[_0xff84('0x38')][_0xff84('0x3a')]));_0x5b9fbf[_0xff84('0x3b')]=_0x5b9fbf[_0xff84('0x3b')]['length']?_0x5b9fbf['attributes']:_0x38bb2c[_0xff84('0x37')];if(_0x5f0229[_0xff84('0x38')][_0xff84('0x47')]){_0x5b9fbf[_0xff84('0x48')]=[{'all':!![]}];}_0x5b9fbf=_[_0xff84('0x2c')]({},_0x5b9fbf,_0x5f0229[_0xff84('0x46')]);return db[_0xff84('0x33')]['find'](_0x5b9fbf)['then'](handleEntityNotFound(_0x2117d5,null))[_0xff84('0x24')](respondWithResult(_0x2117d5,null))[_0xff84('0x4b')](handleError(_0x2117d5,null));};exports['create']=function(_0x44878b,_0xf7db99){return db[_0xff84('0x33')]['create'](_0x44878b['body'],{})[_0xff84('0x24')](function(_0x299bcf){var _0x5d74ed=_0x44878b[_0xff84('0x4f')][_0xff84('0x25')]({'plain':!![]});if(!_0x5d74ed)throw new Error(_0xff84('0x50'));if(_0x5d74ed[_0xff84('0x51')]===_0xff84('0x4f')){var _0x22a7bd=_0x299bcf[_0xff84('0x25')]({'plain':!![]});var _0x2cc8f3=_0xff84('0x26');return db[_0xff84('0x52')][_0xff84('0x53')]({'where':{'name':_0x2cc8f3,'userProfileId':_0x5d74ed['userProfileId']},'raw':!![]})[_0xff84('0x24')](function(_0xd0a379){if(_0xd0a379&&_0xd0a379[_0xff84('0x54')]===0x0){return db[_0xff84('0x27')][_0xff84('0x55')]({'name':_0x22a7bd['name'],'resourceId':_0x22a7bd['id'],'type':_0xd0a379[_0xff84('0x29')],'sectionId':_0xd0a379['id']},{})[_0xff84('0x24')](function(){return _0x299bcf;});}else{return _0x299bcf;}})[_0xff84('0x4b')](function(_0x3f0665){logger[_0xff84('0x28')](_0xff84('0x56'),_0x3f0665);throw _0x3f0665;});}return _0x299bcf;})[_0xff84('0x24')](respondWithResult(_0xf7db99,0xc9))['catch'](handleError(_0xf7db99,null));};exports[_0xff84('0x22')]=function(_0x1014ed,_0x306364){if(_0x1014ed[_0xff84('0x57')]['id']){delete _0x1014ed[_0xff84('0x57')]['id'];}return db[_0xff84('0x33')][_0xff84('0x53')]({'where':{'id':_0x1014ed[_0xff84('0x4c')]['id']}})['then'](handleEntityNotFound(_0x306364,null))['then'](saveUpdates(_0x1014ed[_0xff84('0x57')],null))[_0xff84('0x24')](respondWithResult(_0x306364,null))[_0xff84('0x4b')](handleError(_0x306364,null));};exports[_0xff84('0x23')]=function(_0x21889e,_0x2081c4){return db[_0xff84('0x33')][_0xff84('0x53')]({'where':{'id':_0x21889e[_0xff84('0x4c')]['id']}})[_0xff84('0x24')](handleEntityNotFound(_0x2081c4,null))['then'](removeEntity(_0x2081c4,null))[_0xff84('0x4b')](handleError(_0x2081c4,null));};exports['addInterval']=function(_0xa27e71,_0x2ad035,_0x2ca19e){if(_0xa27e71[_0xff84('0x57')]['id']){delete _0xa27e71[_0xff84('0x57')]['id'];}return db[_0xff84('0x33')]['find']({'where':{'id':_0xa27e71[_0xff84('0x4c')]['id']}})[_0xff84('0x24')](handleEntityNotFound(_0x2ad035,null))['then'](function(_0x420bcd){if(_0x420bcd){_0xa27e71['body'][_0xff84('0x58')]=_0x420bcd['id'];return db[_0xff84('0x33')][_0xff84('0x55')](_0xa27e71[_0xff84('0x57')]);}})['then'](respondWithResult(_0x2ad035,null))[_0xff84('0x4b')](handleError(_0x2ad035,null));};exports['getIntervals']=function(_0x5bc0cb,_0x258040,_0x3e0b3f){var _0x57a6be={};var _0x223fd7={};var _0x474f1;var _0x50e1ac;return db[_0xff84('0x33')][_0xff84('0x59')]({'where':{'id':_0x5bc0cb[_0xff84('0x4c')]['id']}})[_0xff84('0x24')](handleEntityNotFound(_0x258040,null))[_0xff84('0x24')](function(_0x481bba){if(_0x481bba){_0x474f1=_0x481bba;_0x223fd7[_0xff84('0x37')]=_[_0xff84('0x4d')](db['Interval'][_0xff84('0x4e')]);_0x223fd7[_0xff84('0x38')]=_[_0xff84('0x4d')](_0x5bc0cb[_0xff84('0x38')]);_0x223fd7[_0xff84('0x44')]=_[_0xff84('0x39')](_0x223fd7[_0xff84('0x37')],_0x223fd7[_0xff84('0x38')]);_0x57a6be[_0xff84('0x3b')]=_[_0xff84('0x39')](_0x223fd7['model'],qs[_0xff84('0x3a')](_0x5bc0cb[_0xff84('0x38')]['fields']));_0x57a6be[_0xff84('0x3b')]=_0x57a6be[_0xff84('0x3b')][_0xff84('0x3c')]?_0x57a6be[_0xff84('0x3b')]:_0x223fd7[_0xff84('0x37')];_0x57a6be[_0xff84('0x40')]=qs['sort'](_0x5bc0cb[_0xff84('0x38')][_0xff84('0x41')]);_0x57a6be['where']=qs[_0xff84('0x44')](_[_0xff84('0x43')](_0x5bc0cb['query'],_0x223fd7[_0xff84('0x44')]));if(_0x5bc0cb['query'][_0xff84('0x45')]){_0x57a6be[_0xff84('0x42')]=_[_0xff84('0x2c')](_0x57a6be['where'],{'$or':_[_0xff84('0x32')](_0x57a6be[_0xff84('0x3b')],function(_0x140d69){var _0x2e8777={};_0x2e8777[_0x140d69]={'$like':'%'+_0x5bc0cb[_0xff84('0x38')][_0xff84('0x45')]+'%'};return _0x2e8777;})});}_0x57a6be=_[_0xff84('0x2c')]({},_0x57a6be,_0x5bc0cb[_0xff84('0x46')]);return _0x474f1[_0xff84('0x5a')](_0x57a6be);}})[_0xff84('0x24')](function(_0x268dd2){if(_0x268dd2){_0x50e1ac=_0x268dd2[_0xff84('0x3c')];if(!_0x5bc0cb['query'][_0xff84('0x3d')](_0xff84('0x3e'))){_0x57a6be[_0xff84('0x3f')]=qs[_0xff84('0x3f')](_0x5bc0cb['query'][_0xff84('0x3f')]);_0x57a6be[_0xff84('0x1b')]=qs['offset'](_0x5bc0cb[_0xff84('0x38')][_0xff84('0x1b')]);}return _0x474f1[_0xff84('0x5a')](_0x57a6be);}})[_0xff84('0x24')](function(_0x386a37){if(_0x386a37){return _0x386a37?{'count':_0x50e1ac,'rows':_0x386a37}:null;}})[_0xff84('0x24')](respondWithResult(_0x258040,null))[_0xff84('0x4b')](handleError(_0x258040,null));};exports[_0xff84('0x5b')]=function(_0x465ef2,_0x1ce581,_0x2b3d78){return db[_0xff84('0x33')]['findOne']({'where':{'id':_0x465ef2[_0xff84('0x4c')]['id']}})['then'](handleEntityNotFound(_0x1ce581,null))[_0xff84('0x24')](function(_0x54e220){if(_0x54e220){return db[_0xff84('0x5c')][_0xff84('0x5d')](function(_0x38152c){return db[_0xff84('0x33')][_0xff84('0x23')]({'where':{'IntervalId':_0x465ef2[_0xff84('0x4c')]['id']},'transaction':_0x38152c})[_0xff84('0x24')](function(_0x18b302){var _0xdbcc57=_['map'](_0x465ef2[_0xff84('0x57')],function(_0x143b30){delete _0x143b30['id'];_0x143b30[_0xff84('0x58')]=_0x465ef2[_0xff84('0x4c')]['id'];return _0x143b30;});return db[_0xff84('0x33')][_0xff84('0x5e')](_0xdbcc57,{'transaction':_0x38152c});});})[_0xff84('0x24')](function(){return db['Interval'][_0xff84('0x49')]({'where':{'IntervalId':_0x465ef2[_0xff84('0x4c')]['id']}});});}})[_0xff84('0x24')](respondWithResult(_0x1ce581,null))[_0xff84('0x4b')](handleError(_0x1ce581,null));};