Built motion from commit (unavailable).|2.5.12
[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 _0xeb10=['zip-dir','request-promise','bluebird','mustache','path','sox','to-csv','squel','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','offset','limit','set','Content-Range','json','save','update','then','destroy','Intervals','UserProfileResource','end','error','stack','name','index','Interval','rawAttributes','fieldName','type','model','map','keys','query','filters','intersection','attributes','fields','length','hasOwnProperty','order','sort','where','pick','filter','merge','VIRTUAL','options','count','includeAll','include','findAll','rows','params','find','catch','create','user','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','body','IntervalId','getIntervals','findOne','nolimit','sequelize','transaction','bulkCreate','eml-format','rimraf'];(function(_0x79a68c,_0x58e7b8){var _0x4cce1b=function(_0x4da7f6){while(--_0x4da7f6){_0x79a68c['push'](_0x79a68c['shift']());}};_0x4cce1b(++_0x58e7b8);}(_0xeb10,0x15e));var _0x0eb1=function(_0x14892a,_0xe617dd){_0x14892a=_0x14892a-0x0;var _0x30e8de=_0xeb10[_0x14892a];return _0x30e8de;};'use strict';var pdf=require('html-pdf');var emlformat=require(_0x0eb1('0x0'));var rimraf=require(_0x0eb1('0x1'));var zipdir=require(_0x0eb1('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0x0eb1('0x3'));var moment=require('moment');var BPromise=require(_0x0eb1('0x4'));var Mustache=require(_0x0eb1('0x5'));var util=require('util');var path=require(_0x0eb1('0x6'));var sox=require(_0x0eb1('0x7'));var csv=require(_0x0eb1('0x8'));var ejs=require('ejs');var fs=require('fs');var _=require('lodash');var squel=require(_0x0eb1('0x9'));var crypto=require('crypto');var jsforce=require(_0x0eb1('0xa'));var deskjs=require(_0x0eb1('0xb'));var toCsv=require(_0x0eb1('0x8'));var querystring=require(_0x0eb1('0xc'));var Papa=require(_0x0eb1('0xd'));var Redis=require(_0x0eb1('0xe'));var authService=require(_0x0eb1('0xf'));var qs=require(_0x0eb1('0x10'));var as=require(_0x0eb1('0x11'));var hardwareService=require(_0x0eb1('0x12'));var logger=require(_0x0eb1('0x13'))(_0x0eb1('0x14'));var utils=require(_0x0eb1('0x15'));var config=require(_0x0eb1('0x16'));var licenseUtil=require(_0x0eb1('0x17'));var db=require(_0x0eb1('0x18'))['db'];var extensions=require('../../components/extensions/rewrite');function respondWithStatusCode(_0x211dab,_0x143ce3){_0x143ce3=_0x143ce3||0xcc;return function(_0x4e9e83){if(_0x4e9e83){return _0x211dab[_0x0eb1('0x19')](_0x143ce3);}return _0x211dab[_0x0eb1('0x1a')](_0x143ce3)['end']();};}function respondWithResult(_0x32b9ab,_0x3dedf7){_0x3dedf7=_0x3dedf7||0xc8;return function(_0x4384ae){if(_0x4384ae){return _0x32b9ab['status'](_0x3dedf7)['json'](_0x4384ae);}};}function respondWithFilteredResult(_0x5ab9a4,_0x5df0f9){return function(_0x2e3714){if(_0x2e3714){var _0x5ad290=_0x2e3714['count'],_0xbf113b=_0x5df0f9[_0x0eb1('0x1b')],_0x5d7f34=_0x5df0f9[_0x0eb1('0x1b')]+_0x5df0f9[_0x0eb1('0x1c')],_0x45b05e;if(_0x5d7f34>=_0x5ad290){_0x5d7f34=_0x5ad290;_0x45b05e=0xc8;}else{_0x45b05e=0xce;}_0x5ab9a4[_0x0eb1('0x1a')](_0x45b05e);return _0x5ab9a4[_0x0eb1('0x1d')](_0x0eb1('0x1e'),_0xbf113b+'-'+_0x5d7f34+'/'+_0x5ad290)[_0x0eb1('0x1f')](_0x2e3714);}return null;};}function patchUpdates(_0x3e26a7){return function(_0x374bc6){try{jsonpatch['apply'](_0x374bc6,_0x3e26a7,!![]);}catch(_0x16d19c){return BPromise['reject'](_0x16d19c);}return _0x374bc6[_0x0eb1('0x20')]();};}function saveUpdates(_0x2e4575,_0x527ad5){return function(_0x33b394){if(_0x33b394){return _0x33b394[_0x0eb1('0x21')](_0x2e4575)[_0x0eb1('0x22')](function(_0x47f4a3){return _0x47f4a3;});}return null;};}function removeEntity(_0x2a48fa,_0x38d90f){return function(_0xf98925){if(_0xf98925){return _0xf98925[_0x0eb1('0x23')]()[_0x0eb1('0x22')](function(){var _0x285927=_0xf98925['get']({'plain':!![]});var _0x46ddda=_0x0eb1('0x24');return db[_0x0eb1('0x25')][_0x0eb1('0x23')]({'where':{'type':_0x46ddda,'resourceId':_0x285927['id']}})['then'](function(){return _0xf98925;});})[_0x0eb1('0x22')](function(){_0x2a48fa[_0x0eb1('0x1a')](0xcc)[_0x0eb1('0x26')]();});}};}function handleEntityNotFound(_0x399eda,_0xfc8e07){return function(_0x3b4658){if(!_0x3b4658){_0x399eda[_0x0eb1('0x19')](0x194);}return _0x3b4658;};}function handleError(_0x2e10c5,_0x272709){_0x272709=_0x272709||0x1f4;return function(_0x34bec8){logger[_0x0eb1('0x27')](_0x34bec8[_0x0eb1('0x28')]);if(_0x34bec8[_0x0eb1('0x29')]){delete _0x34bec8[_0x0eb1('0x29')];}_0x2e10c5['status'](_0x272709)['send'](_0x34bec8);};}exports[_0x0eb1('0x2a')]=function(_0x1841ad,_0x572c39){var _0x3391aa={},_0x21454b={},_0x6b12bc={'count':0x0,'rows':[]};var _0x2f7177=_['map'](db[_0x0eb1('0x2b')][_0x0eb1('0x2c')],function(_0x46b616){return{'name':_0x46b616[_0x0eb1('0x2d')],'type':_0x46b616[_0x0eb1('0x2e')]['key']};});_0x21454b[_0x0eb1('0x2f')]=_[_0x0eb1('0x30')](_0x2f7177,_0x0eb1('0x29'));_0x21454b['query']=_[_0x0eb1('0x31')](_0x1841ad[_0x0eb1('0x32')]);_0x21454b[_0x0eb1('0x33')]=_[_0x0eb1('0x34')](_0x21454b[_0x0eb1('0x2f')],_0x21454b[_0x0eb1('0x32')]);_0x3391aa[_0x0eb1('0x35')]=_[_0x0eb1('0x34')](_0x21454b[_0x0eb1('0x2f')],qs['fields'](_0x1841ad[_0x0eb1('0x32')][_0x0eb1('0x36')]));_0x3391aa[_0x0eb1('0x35')]=_0x3391aa[_0x0eb1('0x35')][_0x0eb1('0x37')]?_0x3391aa[_0x0eb1('0x35')]:_0x21454b['model'];if(!_0x1841ad[_0x0eb1('0x32')][_0x0eb1('0x38')]('nolimit')){_0x3391aa[_0x0eb1('0x1c')]=qs[_0x0eb1('0x1c')](_0x1841ad[_0x0eb1('0x32')]['limit']);_0x3391aa[_0x0eb1('0x1b')]=qs[_0x0eb1('0x1b')](_0x1841ad['query'][_0x0eb1('0x1b')]);}_0x3391aa[_0x0eb1('0x39')]=qs[_0x0eb1('0x3a')](_0x1841ad['query'][_0x0eb1('0x3a')]);_0x3391aa[_0x0eb1('0x3b')]=qs['filters'](_[_0x0eb1('0x3c')](_0x1841ad['query'],_0x21454b['filters']),_0x2f7177);if(_0x1841ad[_0x0eb1('0x32')][_0x0eb1('0x3d')]){_0x3391aa[_0x0eb1('0x3b')]=_[_0x0eb1('0x3e')](_0x3391aa[_0x0eb1('0x3b')],{'$or':_[_0x0eb1('0x30')](_0x2f7177,function(_0x4126fa){if(_0x4126fa[_0x0eb1('0x2e')]!==_0x0eb1('0x3f')){var _0x126194={};_0x126194[_0x4126fa['name']]={'$like':'%'+_0x1841ad[_0x0eb1('0x32')][_0x0eb1('0x3d')]+'%'};return _0x126194;}})});}_0x3391aa=_[_0x0eb1('0x3e')]({},_0x3391aa,_0x1841ad[_0x0eb1('0x40')]);var _0x9098d4={'where':_0x3391aa['where']};return db[_0x0eb1('0x2b')][_0x0eb1('0x41')](_0x9098d4)[_0x0eb1('0x22')](function(_0x2c87e7){_0x6b12bc[_0x0eb1('0x41')]=_0x2c87e7;if(_0x1841ad[_0x0eb1('0x32')][_0x0eb1('0x42')]){_0x3391aa[_0x0eb1('0x43')]=[{'all':!![]}];}return db[_0x0eb1('0x2b')][_0x0eb1('0x44')](_0x3391aa);})['then'](function(_0xa88f57){_0x6b12bc[_0x0eb1('0x45')]=_0xa88f57;return _0x6b12bc;})[_0x0eb1('0x22')](respondWithFilteredResult(_0x572c39,_0x3391aa))['catch'](handleError(_0x572c39,null));};exports['show']=function(_0x2a5cd6,_0x516c6c){var _0xd00648={'raw':!![],'where':{'id':_0x2a5cd6[_0x0eb1('0x46')]['id']}},_0x470968={};_0x470968[_0x0eb1('0x2f')]=_[_0x0eb1('0x31')](db['Interval']['rawAttributes']);_0x470968['query']=_[_0x0eb1('0x31')](_0x2a5cd6[_0x0eb1('0x32')]);_0x470968[_0x0eb1('0x33')]=_[_0x0eb1('0x34')](_0x470968[_0x0eb1('0x2f')],_0x470968['query']);_0xd00648[_0x0eb1('0x35')]=_[_0x0eb1('0x34')](_0x470968['model'],qs[_0x0eb1('0x36')](_0x2a5cd6['query'][_0x0eb1('0x36')]));_0xd00648[_0x0eb1('0x35')]=_0xd00648[_0x0eb1('0x35')][_0x0eb1('0x37')]?_0xd00648[_0x0eb1('0x35')]:_0x470968[_0x0eb1('0x2f')];if(_0x2a5cd6[_0x0eb1('0x32')][_0x0eb1('0x42')]){_0xd00648[_0x0eb1('0x43')]=[{'all':!![]}];}_0xd00648=_[_0x0eb1('0x3e')]({},_0xd00648,_0x2a5cd6[_0x0eb1('0x40')]);return db[_0x0eb1('0x2b')][_0x0eb1('0x47')](_0xd00648)[_0x0eb1('0x22')](handleEntityNotFound(_0x516c6c,null))[_0x0eb1('0x22')](respondWithResult(_0x516c6c,null))[_0x0eb1('0x48')](handleError(_0x516c6c,null));};exports[_0x0eb1('0x49')]=function(_0x516e4e,_0x16062e){return db['Interval'][_0x0eb1('0x49')](_0x516e4e['body'],{})[_0x0eb1('0x22')](function(_0x143305){var _0x333b75=_0x516e4e[_0x0eb1('0x4a')][_0x0eb1('0x4b')]({'plain':!![]});if(!_0x333b75)throw new Error(_0x0eb1('0x4c'));if(_0x333b75[_0x0eb1('0x4d')]===_0x0eb1('0x4a')){var _0x724e3b=_0x143305[_0x0eb1('0x4b')]({'plain':!![]});var _0x6c93f7=_0x0eb1('0x24');return db[_0x0eb1('0x4e')][_0x0eb1('0x47')]({'where':{'name':_0x6c93f7,'userProfileId':_0x333b75[_0x0eb1('0x4f')]},'raw':!![]})['then'](function(_0x57df6e){if(_0x57df6e&&_0x57df6e['autoAssociation']===0x0){return db['UserProfileResource']['create']({'name':_0x724e3b['name'],'resourceId':_0x724e3b['id'],'type':_0x57df6e[_0x0eb1('0x29')],'sectionId':_0x57df6e['id']},{})[_0x0eb1('0x22')](function(){return _0x143305;});}else{return _0x143305;}})['catch'](function(_0x5cdf77){logger['error']('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x5cdf77);throw _0x5cdf77;});}return _0x143305;})[_0x0eb1('0x22')](respondWithResult(_0x16062e,0xc9))['catch'](handleError(_0x16062e,null));};exports[_0x0eb1('0x21')]=function(_0x781958,_0x1f8877){if(_0x781958['body']['id']){delete _0x781958['body']['id'];}return db[_0x0eb1('0x2b')][_0x0eb1('0x47')]({'where':{'id':_0x781958[_0x0eb1('0x46')]['id']}})[_0x0eb1('0x22')](handleEntityNotFound(_0x1f8877,null))[_0x0eb1('0x22')](saveUpdates(_0x781958[_0x0eb1('0x50')],null))[_0x0eb1('0x22')](respondWithResult(_0x1f8877,null))[_0x0eb1('0x48')](handleError(_0x1f8877,null));};exports[_0x0eb1('0x23')]=function(_0x329d83,_0x5c35a8){return db[_0x0eb1('0x2b')]['find']({'where':{'id':_0x329d83[_0x0eb1('0x46')]['id']}})['then'](handleEntityNotFound(_0x5c35a8,null))[_0x0eb1('0x22')](removeEntity(_0x5c35a8,null))[_0x0eb1('0x48')](handleError(_0x5c35a8,null));};exports['addInterval']=function(_0x3f30b9,_0x46b4d7,_0x5e1009){if(_0x3f30b9[_0x0eb1('0x50')]['id']){delete _0x3f30b9[_0x0eb1('0x50')]['id'];}return db['Interval'][_0x0eb1('0x47')]({'where':{'id':_0x3f30b9['params']['id']}})[_0x0eb1('0x22')](handleEntityNotFound(_0x46b4d7,null))[_0x0eb1('0x22')](function(_0x4aec1c){if(_0x4aec1c){_0x3f30b9[_0x0eb1('0x50')][_0x0eb1('0x51')]=_0x4aec1c['id'];return db[_0x0eb1('0x2b')][_0x0eb1('0x49')](_0x3f30b9[_0x0eb1('0x50')]);}})[_0x0eb1('0x22')](respondWithResult(_0x46b4d7,null))[_0x0eb1('0x48')](handleError(_0x46b4d7,null));};exports[_0x0eb1('0x52')]=function(_0x2a4ece,_0x14955b,_0x32ca2f){var _0x1f4df6={};var _0x44fe37={};var _0x5196fa;var _0x1fffa8;return db[_0x0eb1('0x2b')][_0x0eb1('0x53')]({'where':{'id':_0x2a4ece[_0x0eb1('0x46')]['id']}})[_0x0eb1('0x22')](handleEntityNotFound(_0x14955b,null))['then'](function(_0x190911){if(_0x190911){_0x5196fa=_0x190911;_0x44fe37['model']=_[_0x0eb1('0x31')](db[_0x0eb1('0x2b')][_0x0eb1('0x2c')]);_0x44fe37['query']=_[_0x0eb1('0x31')](_0x2a4ece[_0x0eb1('0x32')]);_0x44fe37[_0x0eb1('0x33')]=_[_0x0eb1('0x34')](_0x44fe37[_0x0eb1('0x2f')],_0x44fe37[_0x0eb1('0x32')]);_0x1f4df6['attributes']=_['intersection'](_0x44fe37[_0x0eb1('0x2f')],qs['fields'](_0x2a4ece[_0x0eb1('0x32')][_0x0eb1('0x36')]));_0x1f4df6['attributes']=_0x1f4df6[_0x0eb1('0x35')]['length']?_0x1f4df6['attributes']:_0x44fe37['model'];_0x1f4df6[_0x0eb1('0x39')]=qs['sort'](_0x2a4ece[_0x0eb1('0x32')][_0x0eb1('0x3a')]);_0x1f4df6['where']=qs[_0x0eb1('0x33')](_['pick'](_0x2a4ece[_0x0eb1('0x32')],_0x44fe37['filters']));if(_0x2a4ece[_0x0eb1('0x32')][_0x0eb1('0x3d')]){_0x1f4df6[_0x0eb1('0x3b')]=_[_0x0eb1('0x3e')](_0x1f4df6[_0x0eb1('0x3b')],{'$or':_[_0x0eb1('0x30')](_0x1f4df6[_0x0eb1('0x35')],function(_0x528a17){var _0x2d9b16={};_0x2d9b16[_0x528a17]={'$like':'%'+_0x2a4ece[_0x0eb1('0x32')]['filter']+'%'};return _0x2d9b16;})});}_0x1f4df6=_['merge']({},_0x1f4df6,_0x2a4ece[_0x0eb1('0x40')]);return _0x5196fa[_0x0eb1('0x52')](_0x1f4df6);}})[_0x0eb1('0x22')](function(_0x370fc8){if(_0x370fc8){_0x1fffa8=_0x370fc8[_0x0eb1('0x37')];if(!_0x2a4ece[_0x0eb1('0x32')][_0x0eb1('0x38')](_0x0eb1('0x54'))){_0x1f4df6[_0x0eb1('0x1c')]=qs['limit'](_0x2a4ece[_0x0eb1('0x32')]['limit']);_0x1f4df6['offset']=qs['offset'](_0x2a4ece['query'][_0x0eb1('0x1b')]);}return _0x5196fa[_0x0eb1('0x52')](_0x1f4df6);}})[_0x0eb1('0x22')](function(_0x5347f7){if(_0x5347f7){return _0x5347f7?{'count':_0x1fffa8,'rows':_0x5347f7}:null;}})[_0x0eb1('0x22')](respondWithResult(_0x14955b,null))[_0x0eb1('0x48')](handleError(_0x14955b,null));};exports['addIntervals']=function(_0x2f721d,_0x13f593,_0x3614d3){return db[_0x0eb1('0x2b')]['findOne']({'where':{'id':_0x2f721d['params']['id']}})[_0x0eb1('0x22')](handleEntityNotFound(_0x13f593,null))[_0x0eb1('0x22')](function(_0x32523d){if(_0x32523d){return db[_0x0eb1('0x55')][_0x0eb1('0x56')](function(_0x401696){return db[_0x0eb1('0x2b')][_0x0eb1('0x23')]({'where':{'IntervalId':_0x2f721d[_0x0eb1('0x46')]['id']},'transaction':_0x401696})[_0x0eb1('0x22')](function(_0x3b3866){var _0x1e81ac=_['map'](_0x2f721d[_0x0eb1('0x50')],function(_0x3f9d66){delete _0x3f9d66['id'];_0x3f9d66[_0x0eb1('0x51')]=_0x2f721d[_0x0eb1('0x46')]['id'];return _0x3f9d66;});return db[_0x0eb1('0x2b')][_0x0eb1('0x57')](_0x1e81ac,{'transaction':_0x401696});});})[_0x0eb1('0x22')](function(){return db[_0x0eb1('0x2b')][_0x0eb1('0x44')]({'where':{'IntervalId':_0x2f721d[_0x0eb1('0x46')]['id']}});});}})['then'](respondWithResult(_0x13f593,null))[_0x0eb1('0x48')](handleError(_0x13f593,null));};