68fed4bbebcd036aaca06ac4073ae812551e221b
[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 _0x7a3e=['params','rawAttributes','create','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','autoAssociation','catch','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','body','find','IntervalId','getIntervals','findOne','merge','addIntervals','sequelize','bulkCreate','html-pdf','eml-format','zip-dir','fast-json-patch','request-promise','moment','mustache','util','path','ejs','lodash','squel','crypto','jsforce','desk.js','ioredis','../../components/auth/service','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','../../components/extensions/rewrite','sendStatus','status','end','offset','limit','json','apply','reject','save','update','destroy','then','get','Intervals','stack','name','send','index','map','Interval','fieldName','type','key','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','VIRTUAL','filter','options','count','includeAll','include','findAll','rows','show'];(function(_0x21aec3,_0x5c97e9){var _0x288bbc=function(_0x2283fe){while(--_0x2283fe){_0x21aec3['push'](_0x21aec3['shift']());}};_0x288bbc(++_0x5c97e9);}(_0x7a3e,0xc6));var _0xe7a3=function(_0x5735f4,_0x462a3c){_0x5735f4=_0x5735f4-0x0;var _0x2abe19=_0x7a3e[_0x5735f4];return _0x2abe19;};'use strict';var pdf=require(_0xe7a3('0x0'));var emlformat=require(_0xe7a3('0x1'));var rimraf=require('rimraf');var zipdir=require(_0xe7a3('0x2'));var jsonpatch=require(_0xe7a3('0x3'));var rp=require(_0xe7a3('0x4'));var moment=require(_0xe7a3('0x5'));var BPromise=require('bluebird');var Mustache=require(_0xe7a3('0x6'));var util=require(_0xe7a3('0x7'));var path=require(_0xe7a3('0x8'));var sox=require('sox');var csv=require('to-csv');var ejs=require(_0xe7a3('0x9'));var fs=require('fs');var _=require(_0xe7a3('0xa'));var squel=require(_0xe7a3('0xb'));var crypto=require(_0xe7a3('0xc'));var jsforce=require(_0xe7a3('0xd'));var deskjs=require(_0xe7a3('0xe'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0xe7a3('0xf'));var authService=require(_0xe7a3('0x10'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require(_0xe7a3('0x11'))(_0xe7a3('0x12'));var utils=require('../../config/utils');var config=require(_0xe7a3('0x13'));var licenseUtil=require(_0xe7a3('0x14'));var db=require(_0xe7a3('0x15'))['db'];var extensions=require(_0xe7a3('0x16'));function respondWithStatusCode(_0x3ab6ab,_0x48e655){_0x48e655=_0x48e655||0xcc;return function(_0xd229ac){if(_0xd229ac){return _0x3ab6ab[_0xe7a3('0x17')](_0x48e655);}return _0x3ab6ab[_0xe7a3('0x18')](_0x48e655)[_0xe7a3('0x19')]();};}function respondWithResult(_0x2e1f01,_0x3814a1){_0x3814a1=_0x3814a1||0xc8;return function(_0x4a73b8){if(_0x4a73b8){return _0x2e1f01[_0xe7a3('0x18')](_0x3814a1)['json'](_0x4a73b8);}};}function respondWithFilteredResult(_0x65dd07,_0x425cf5){return function(_0x179306){if(_0x179306){var _0x470e35=_0x179306['count'],_0x23ef0b=_0x425cf5[_0xe7a3('0x1a')],_0x5b35b5=_0x425cf5[_0xe7a3('0x1a')]+_0x425cf5[_0xe7a3('0x1b')],_0x59cee9;if(_0x5b35b5>=_0x470e35){_0x5b35b5=_0x470e35;_0x59cee9=0xc8;}else{_0x59cee9=0xce;}_0x65dd07[_0xe7a3('0x18')](_0x59cee9);return _0x65dd07['set']('Content-Range',_0x23ef0b+'-'+_0x5b35b5+'/'+_0x470e35)[_0xe7a3('0x1c')](_0x179306);}return null;};}function patchUpdates(_0x1cdd8e){return function(_0x102080){try{jsonpatch[_0xe7a3('0x1d')](_0x102080,_0x1cdd8e,!![]);}catch(_0x3fbf6f){return BPromise[_0xe7a3('0x1e')](_0x3fbf6f);}return _0x102080[_0xe7a3('0x1f')]();};}function saveUpdates(_0x48936b,_0x5b4dcf){return function(_0x51f2a8){if(_0x51f2a8){return _0x51f2a8[_0xe7a3('0x20')](_0x48936b)['then'](function(_0x302b32){return _0x302b32;});}return null;};}function removeEntity(_0x4e9d43,_0x261618){return function(_0x230e50){if(_0x230e50){return _0x230e50[_0xe7a3('0x21')]()[_0xe7a3('0x22')](function(){var _0x331494=_0x230e50[_0xe7a3('0x23')]({'plain':!![]});var _0x33f63e=_0xe7a3('0x24');return db['UserProfileResource'][_0xe7a3('0x21')]({'where':{'type':_0x33f63e,'resourceId':_0x331494['id']}})[_0xe7a3('0x22')](function(){return _0x230e50;});})[_0xe7a3('0x22')](function(){_0x4e9d43['status'](0xcc)[_0xe7a3('0x19')]();});}};}function handleEntityNotFound(_0x104d79,_0x1f13dd){return function(_0x50a40e){if(!_0x50a40e){_0x104d79['sendStatus'](0x194);}return _0x50a40e;};}function handleError(_0x16e010,_0x2faccc){_0x2faccc=_0x2faccc||0x1f4;return function(_0x3383f8){logger['error'](_0x3383f8[_0xe7a3('0x25')]);if(_0x3383f8['name']){delete _0x3383f8[_0xe7a3('0x26')];}_0x16e010[_0xe7a3('0x18')](_0x2faccc)[_0xe7a3('0x27')](_0x3383f8);};}exports[_0xe7a3('0x28')]=function(_0x1580c6,_0x4a87aa){var _0xa691b9={},_0x3241b1={},_0x5f07d2={'count':0x0,'rows':[]};var _0x2aa72e=_[_0xe7a3('0x29')](db[_0xe7a3('0x2a')]['rawAttributes'],function(_0xb975a0){return{'name':_0xb975a0[_0xe7a3('0x2b')],'type':_0xb975a0[_0xe7a3('0x2c')][_0xe7a3('0x2d')]};});_0x3241b1[_0xe7a3('0x2e')]=_[_0xe7a3('0x29')](_0x2aa72e,_0xe7a3('0x26'));_0x3241b1[_0xe7a3('0x2f')]=_[_0xe7a3('0x30')](_0x1580c6['query']);_0x3241b1[_0xe7a3('0x31')]=_[_0xe7a3('0x32')](_0x3241b1['model'],_0x3241b1['query']);_0xa691b9[_0xe7a3('0x33')]=_[_0xe7a3('0x32')](_0x3241b1[_0xe7a3('0x2e')],qs[_0xe7a3('0x34')](_0x1580c6[_0xe7a3('0x2f')][_0xe7a3('0x34')]));_0xa691b9[_0xe7a3('0x33')]=_0xa691b9[_0xe7a3('0x33')][_0xe7a3('0x35')]?_0xa691b9[_0xe7a3('0x33')]:_0x3241b1[_0xe7a3('0x2e')];if(!_0x1580c6[_0xe7a3('0x2f')][_0xe7a3('0x36')](_0xe7a3('0x37'))){_0xa691b9[_0xe7a3('0x1b')]=qs[_0xe7a3('0x1b')](_0x1580c6[_0xe7a3('0x2f')][_0xe7a3('0x1b')]);_0xa691b9['offset']=qs['offset'](_0x1580c6[_0xe7a3('0x2f')][_0xe7a3('0x1a')]);}_0xa691b9[_0xe7a3('0x38')]=qs[_0xe7a3('0x39')](_0x1580c6['query'][_0xe7a3('0x39')]);_0xa691b9[_0xe7a3('0x3a')]=qs[_0xe7a3('0x31')](_[_0xe7a3('0x3b')](_0x1580c6[_0xe7a3('0x2f')],_0x3241b1[_0xe7a3('0x31')]),_0x2aa72e);if(_0x1580c6[_0xe7a3('0x2f')]['filter']){_0xa691b9[_0xe7a3('0x3a')]=_['merge'](_0xa691b9[_0xe7a3('0x3a')],{'$or':_[_0xe7a3('0x29')](_0x2aa72e,function(_0x549bf7){if(_0x549bf7[_0xe7a3('0x2c')]!==_0xe7a3('0x3c')){var _0x4dbaf5={};_0x4dbaf5[_0x549bf7[_0xe7a3('0x26')]]={'$like':'%'+_0x1580c6['query'][_0xe7a3('0x3d')]+'%'};return _0x4dbaf5;}})});}_0xa691b9=_['merge']({},_0xa691b9,_0x1580c6[_0xe7a3('0x3e')]);var _0x1a64cc={'where':_0xa691b9[_0xe7a3('0x3a')]};return db[_0xe7a3('0x2a')][_0xe7a3('0x3f')](_0x1a64cc)[_0xe7a3('0x22')](function(_0x3e9a46){_0x5f07d2['count']=_0x3e9a46;if(_0x1580c6[_0xe7a3('0x2f')][_0xe7a3('0x40')]){_0xa691b9[_0xe7a3('0x41')]=[{'all':!![]}];}return db[_0xe7a3('0x2a')][_0xe7a3('0x42')](_0xa691b9);})[_0xe7a3('0x22')](function(_0x3c8c3a){_0x5f07d2[_0xe7a3('0x43')]=_0x3c8c3a;return _0x5f07d2;})[_0xe7a3('0x22')](respondWithFilteredResult(_0x4a87aa,_0xa691b9))['catch'](handleError(_0x4a87aa,null));};exports[_0xe7a3('0x44')]=function(_0x2040cd,_0x492f2a){var _0x4c012f={'raw':!![],'where':{'id':_0x2040cd[_0xe7a3('0x45')]['id']}},_0x590aef={};_0x590aef[_0xe7a3('0x2e')]=_[_0xe7a3('0x30')](db[_0xe7a3('0x2a')][_0xe7a3('0x46')]);_0x590aef['query']=_[_0xe7a3('0x30')](_0x2040cd[_0xe7a3('0x2f')]);_0x590aef[_0xe7a3('0x31')]=_['intersection'](_0x590aef[_0xe7a3('0x2e')],_0x590aef['query']);_0x4c012f[_0xe7a3('0x33')]=_['intersection'](_0x590aef['model'],qs[_0xe7a3('0x34')](_0x2040cd[_0xe7a3('0x2f')]['fields']));_0x4c012f[_0xe7a3('0x33')]=_0x4c012f[_0xe7a3('0x33')][_0xe7a3('0x35')]?_0x4c012f[_0xe7a3('0x33')]:_0x590aef[_0xe7a3('0x2e')];if(_0x2040cd['query']['includeAll']){_0x4c012f[_0xe7a3('0x41')]=[{'all':!![]}];}_0x4c012f=_['merge']({},_0x4c012f,_0x2040cd[_0xe7a3('0x3e')]);return db[_0xe7a3('0x2a')]['find'](_0x4c012f)['then'](handleEntityNotFound(_0x492f2a,null))[_0xe7a3('0x22')](respondWithResult(_0x492f2a,null))['catch'](handleError(_0x492f2a,null));};exports[_0xe7a3('0x47')]=function(_0x478ae2,_0x1b03ca){return db[_0xe7a3('0x2a')]['create'](_0x478ae2['body'],{})[_0xe7a3('0x22')](function(_0x3d2af7){var _0x2b3ecf=_0x478ae2[_0xe7a3('0x48')][_0xe7a3('0x23')]({'plain':!![]});if(!_0x2b3ecf)throw new Error(_0xe7a3('0x49'));if(_0x2b3ecf[_0xe7a3('0x4a')]==='user'){var _0x56eb68=_0x3d2af7[_0xe7a3('0x23')]({'plain':!![]});var _0xec0996=_0xe7a3('0x24');return db[_0xe7a3('0x4b')]['find']({'where':{'name':_0xec0996,'userProfileId':_0x2b3ecf[_0xe7a3('0x4c')]},'raw':!![]})[_0xe7a3('0x22')](function(_0x5958b4){if(_0x5958b4&&_0x5958b4[_0xe7a3('0x4d')]===0x0){return db['UserProfileResource']['create']({'name':_0x56eb68[_0xe7a3('0x26')],'resourceId':_0x56eb68['id'],'type':_0x5958b4['name'],'sectionId':_0x5958b4['id']},{})[_0xe7a3('0x22')](function(){return _0x3d2af7;});}else{return _0x3d2af7;}})[_0xe7a3('0x4e')](function(_0x1853a3){logger['error'](_0xe7a3('0x4f'),_0x1853a3);throw _0x1853a3;});}return _0x3d2af7;})[_0xe7a3('0x22')](respondWithResult(_0x1b03ca,0xc9))[_0xe7a3('0x4e')](handleError(_0x1b03ca,null));};exports[_0xe7a3('0x20')]=function(_0x48f6c3,_0x3ed02f){if(_0x48f6c3[_0xe7a3('0x50')]['id']){delete _0x48f6c3['body']['id'];}return db['Interval'][_0xe7a3('0x51')]({'where':{'id':_0x48f6c3['params']['id']}})[_0xe7a3('0x22')](handleEntityNotFound(_0x3ed02f,null))[_0xe7a3('0x22')](saveUpdates(_0x48f6c3[_0xe7a3('0x50')],null))['then'](respondWithResult(_0x3ed02f,null))[_0xe7a3('0x4e')](handleError(_0x3ed02f,null));};exports[_0xe7a3('0x21')]=function(_0x247fa5,_0x5657ea){return db[_0xe7a3('0x2a')][_0xe7a3('0x51')]({'where':{'id':_0x247fa5['params']['id']}})[_0xe7a3('0x22')](handleEntityNotFound(_0x5657ea,null))[_0xe7a3('0x22')](removeEntity(_0x5657ea,null))[_0xe7a3('0x4e')](handleError(_0x5657ea,null));};exports['addInterval']=function(_0xf5b5ec,_0xc57d41,_0x2ecab0){if(_0xf5b5ec[_0xe7a3('0x50')]['id']){delete _0xf5b5ec[_0xe7a3('0x50')]['id'];}return db[_0xe7a3('0x2a')]['find']({'where':{'id':_0xf5b5ec[_0xe7a3('0x45')]['id']}})['then'](handleEntityNotFound(_0xc57d41,null))[_0xe7a3('0x22')](function(_0x403d86){if(_0x403d86){_0xf5b5ec[_0xe7a3('0x50')][_0xe7a3('0x52')]=_0x403d86['id'];return db[_0xe7a3('0x2a')]['create'](_0xf5b5ec[_0xe7a3('0x50')]);}})[_0xe7a3('0x22')](respondWithResult(_0xc57d41,null))['catch'](handleError(_0xc57d41,null));};exports[_0xe7a3('0x53')]=function(_0x1207bc,_0x492a97,_0x30ae51){var _0x3f2145={};var _0x353675={};var _0x5a3402;var _0xf755d0;return db[_0xe7a3('0x2a')][_0xe7a3('0x54')]({'where':{'id':_0x1207bc[_0xe7a3('0x45')]['id']}})[_0xe7a3('0x22')](handleEntityNotFound(_0x492a97,null))[_0xe7a3('0x22')](function(_0x51dd48){if(_0x51dd48){_0x5a3402=_0x51dd48;_0x353675['model']=_[_0xe7a3('0x30')](db['Interval'][_0xe7a3('0x46')]);_0x353675[_0xe7a3('0x2f')]=_['keys'](_0x1207bc[_0xe7a3('0x2f')]);_0x353675[_0xe7a3('0x31')]=_[_0xe7a3('0x32')](_0x353675[_0xe7a3('0x2e')],_0x353675[_0xe7a3('0x2f')]);_0x3f2145[_0xe7a3('0x33')]=_['intersection'](_0x353675[_0xe7a3('0x2e')],qs[_0xe7a3('0x34')](_0x1207bc['query']['fields']));_0x3f2145[_0xe7a3('0x33')]=_0x3f2145['attributes'][_0xe7a3('0x35')]?_0x3f2145[_0xe7a3('0x33')]:_0x353675[_0xe7a3('0x2e')];_0x3f2145['order']=qs['sort'](_0x1207bc['query'][_0xe7a3('0x39')]);_0x3f2145['where']=qs[_0xe7a3('0x31')](_[_0xe7a3('0x3b')](_0x1207bc['query'],_0x353675['filters']));if(_0x1207bc[_0xe7a3('0x2f')][_0xe7a3('0x3d')]){_0x3f2145[_0xe7a3('0x3a')]=_[_0xe7a3('0x55')](_0x3f2145['where'],{'$or':_[_0xe7a3('0x29')](_0x3f2145[_0xe7a3('0x33')],function(_0x2f8cf8){var _0x1804fc={};_0x1804fc[_0x2f8cf8]={'$like':'%'+_0x1207bc[_0xe7a3('0x2f')]['filter']+'%'};return _0x1804fc;})});}_0x3f2145=_[_0xe7a3('0x55')]({},_0x3f2145,_0x1207bc[_0xe7a3('0x3e')]);return _0x5a3402['getIntervals'](_0x3f2145);}})[_0xe7a3('0x22')](function(_0x570711){if(_0x570711){_0xf755d0=_0x570711[_0xe7a3('0x35')];if(!_0x1207bc[_0xe7a3('0x2f')]['hasOwnProperty'](_0xe7a3('0x37'))){_0x3f2145[_0xe7a3('0x1b')]=qs[_0xe7a3('0x1b')](_0x1207bc[_0xe7a3('0x2f')][_0xe7a3('0x1b')]);_0x3f2145['offset']=qs['offset'](_0x1207bc['query'][_0xe7a3('0x1a')]);}return _0x5a3402[_0xe7a3('0x53')](_0x3f2145);}})[_0xe7a3('0x22')](function(_0x225fa7){if(_0x225fa7){return _0x225fa7?{'count':_0xf755d0,'rows':_0x225fa7}:null;}})[_0xe7a3('0x22')](respondWithResult(_0x492a97,null))[_0xe7a3('0x4e')](handleError(_0x492a97,null));};exports[_0xe7a3('0x56')]=function(_0x5510b3,_0x4e51fd,_0x43ffbf){return db[_0xe7a3('0x2a')][_0xe7a3('0x54')]({'where':{'id':_0x5510b3[_0xe7a3('0x45')]['id']}})['then'](handleEntityNotFound(_0x4e51fd,null))[_0xe7a3('0x22')](function(_0x57b9b5){if(_0x57b9b5){return db[_0xe7a3('0x57')]['transaction'](function(_0x497ad6){return db['Interval'][_0xe7a3('0x21')]({'where':{'IntervalId':_0x5510b3[_0xe7a3('0x45')]['id']},'transaction':_0x497ad6})[_0xe7a3('0x22')](function(_0x1ca6fc){var _0x782c69=_[_0xe7a3('0x29')](_0x5510b3[_0xe7a3('0x50')],function(_0x3f465d){delete _0x3f465d['id'];_0x3f465d[_0xe7a3('0x52')]=_0x5510b3['params']['id'];return _0x3f465d;});return db[_0xe7a3('0x2a')][_0xe7a3('0x58')](_0x782c69,{'transaction':_0x497ad6});});})[_0xe7a3('0x22')](function(){return db[_0xe7a3('0x2a')][_0xe7a3('0x42')]({'where':{'IntervalId':_0x5510b3[_0xe7a3('0x45')]['id']}});});}})['then'](respondWithResult(_0x4e51fd,null))[_0xe7a3('0x4e')](handleError(_0x4e51fd,null));};