Built motion from commit (unavailable).|2.5.22
[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 _0x233d=['type','key','model','query','filters','intersection','attributes','fields','hasOwnProperty','order','sort','pick','filter','where','merge','options','Interval','include','findAll','rows','catch','show','rawAttributes','keys','length','includeAll','find','create','body','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','user','userProfileId','autoAssociation','UserProfileResource','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','params','IntervalId','findOne','sequelize','transaction','html-pdf','rimraf','fast-json-patch','request-promise','moment','bluebird','mustache','util','sox','ejs','squel','crypto','jsforce','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','count','offset','limit','set','apply','reject','save','update','then','destroy','Intervals','stack','name','send','index','map','fieldName'];(function(_0x59bcd2,_0x33c1e0){var _0x1901bf=function(_0x1c5eb9){while(--_0x1c5eb9){_0x59bcd2['push'](_0x59bcd2['shift']());}};_0x1901bf(++_0x33c1e0);}(_0x233d,0x18f));var _0xd233=function(_0x1bd85d,_0xdc683f){_0x1bd85d=_0x1bd85d-0x0;var _0xd40669=_0x233d[_0x1bd85d];return _0xd40669;};'use strict';var pdf=require(_0xd233('0x0'));var emlformat=require('eml-format');var rimraf=require(_0xd233('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0xd233('0x2'));var rp=require(_0xd233('0x3'));var moment=require(_0xd233('0x4'));var BPromise=require(_0xd233('0x5'));var Mustache=require(_0xd233('0x6'));var util=require(_0xd233('0x7'));var path=require('path');var sox=require(_0xd233('0x8'));var csv=require('to-csv');var ejs=require(_0xd233('0x9'));var fs=require('fs');var _=require('lodash');var squel=require(_0xd233('0xa'));var crypto=require(_0xd233('0xb'));var jsforce=require(_0xd233('0xc'));var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0xd233('0xd'));var Papa=require(_0xd233('0xe'));var Redis=require(_0xd233('0xf'));var authService=require(_0xd233('0x10'));var qs=require(_0xd233('0x11'));var as=require(_0xd233('0x12'));var hardwareService=require(_0xd233('0x13'));var logger=require('../../config/logger')(_0xd233('0x14'));var utils=require(_0xd233('0x15'));var config=require(_0xd233('0x16'));var licenseUtil=require(_0xd233('0x17'));var db=require(_0xd233('0x18'))['db'];var extensions=require('../../components/extensions/rewrite');function respondWithStatusCode(_0x262b0d,_0xc24168){_0xc24168=_0xc24168||0xcc;return function(_0x911a5a){if(_0x911a5a){return _0x262b0d[_0xd233('0x19')](_0xc24168);}return _0x262b0d[_0xd233('0x1a')](_0xc24168)[_0xd233('0x1b')]();};}function respondWithResult(_0xce3aa6,_0x4fbd22){_0x4fbd22=_0x4fbd22||0xc8;return function(_0x124503){if(_0x124503){return _0xce3aa6['status'](_0x4fbd22)[_0xd233('0x1c')](_0x124503);}};}function respondWithFilteredResult(_0x5947a6,_0xbd3803){return function(_0x4e0580){if(_0x4e0580){var _0x3055cc=_0x4e0580[_0xd233('0x1d')],_0x5d8f0c=_0xbd3803[_0xd233('0x1e')],_0x12ab32=_0xbd3803[_0xd233('0x1e')]+_0xbd3803[_0xd233('0x1f')],_0x4c3713;if(_0x12ab32>=_0x3055cc){_0x12ab32=_0x3055cc;_0x4c3713=0xc8;}else{_0x4c3713=0xce;}_0x5947a6[_0xd233('0x1a')](_0x4c3713);return _0x5947a6[_0xd233('0x20')]('Content-Range',_0x5d8f0c+'-'+_0x12ab32+'/'+_0x3055cc)[_0xd233('0x1c')](_0x4e0580);}return null;};}function patchUpdates(_0x4a9d06){return function(_0x4156c1){try{jsonpatch[_0xd233('0x21')](_0x4156c1,_0x4a9d06,!![]);}catch(_0x4ad227){return BPromise[_0xd233('0x22')](_0x4ad227);}return _0x4156c1[_0xd233('0x23')]();};}function saveUpdates(_0x66526,_0x400a53){return function(_0x1a35e1){if(_0x1a35e1){return _0x1a35e1[_0xd233('0x24')](_0x66526)[_0xd233('0x25')](function(_0x3ec880){return _0x3ec880;});}return null;};}function removeEntity(_0xa85dc,_0x34dbc9){return function(_0x578710){if(_0x578710){return _0x578710[_0xd233('0x26')]()[_0xd233('0x25')](function(){var _0x268b1c=_0x578710['get']({'plain':!![]});var _0x3ea9f9=_0xd233('0x27');return db['UserProfileResource'][_0xd233('0x26')]({'where':{'type':_0x3ea9f9,'resourceId':_0x268b1c['id']}})[_0xd233('0x25')](function(){return _0x578710;});})['then'](function(){_0xa85dc[_0xd233('0x1a')](0xcc)['end']();});}};}function handleEntityNotFound(_0x12d70c,_0x19731c){return function(_0x1ce292){if(!_0x1ce292){_0x12d70c['sendStatus'](0x194);}return _0x1ce292;};}function handleError(_0x25eb8a,_0x2b1d87){_0x2b1d87=_0x2b1d87||0x1f4;return function(_0x54231b){logger['error'](_0x54231b[_0xd233('0x28')]);if(_0x54231b[_0xd233('0x29')]){delete _0x54231b[_0xd233('0x29')];}_0x25eb8a[_0xd233('0x1a')](_0x2b1d87)[_0xd233('0x2a')](_0x54231b);};}exports[_0xd233('0x2b')]=function(_0x3cbad6,_0x173aeb){var _0x49fe82={},_0x40727={},_0x45dbc9={'count':0x0,'rows':[]};var _0x28bb49=_[_0xd233('0x2c')](db['Interval']['rawAttributes'],function(_0x3e4ff8){return{'name':_0x3e4ff8[_0xd233('0x2d')],'type':_0x3e4ff8[_0xd233('0x2e')][_0xd233('0x2f')]};});_0x40727[_0xd233('0x30')]=_['map'](_0x28bb49,'name');_0x40727['query']=_['keys'](_0x3cbad6[_0xd233('0x31')]);_0x40727[_0xd233('0x32')]=_[_0xd233('0x33')](_0x40727[_0xd233('0x30')],_0x40727[_0xd233('0x31')]);_0x49fe82[_0xd233('0x34')]=_['intersection'](_0x40727[_0xd233('0x30')],qs[_0xd233('0x35')](_0x3cbad6[_0xd233('0x31')]['fields']));_0x49fe82[_0xd233('0x34')]=_0x49fe82['attributes']['length']?_0x49fe82['attributes']:_0x40727[_0xd233('0x30')];if(!_0x3cbad6[_0xd233('0x31')][_0xd233('0x36')]('nolimit')){_0x49fe82[_0xd233('0x1f')]=qs[_0xd233('0x1f')](_0x3cbad6['query']['limit']);_0x49fe82[_0xd233('0x1e')]=qs[_0xd233('0x1e')](_0x3cbad6[_0xd233('0x31')]['offset']);}_0x49fe82[_0xd233('0x37')]=qs[_0xd233('0x38')](_0x3cbad6[_0xd233('0x31')]['sort']);_0x49fe82['where']=qs[_0xd233('0x32')](_[_0xd233('0x39')](_0x3cbad6['query'],_0x40727[_0xd233('0x32')]),_0x28bb49);if(_0x3cbad6[_0xd233('0x31')][_0xd233('0x3a')]){_0x49fe82[_0xd233('0x3b')]=_[_0xd233('0x3c')](_0x49fe82[_0xd233('0x3b')],{'$or':_['map'](_0x28bb49,function(_0x14275a){if(_0x14275a[_0xd233('0x2e')]!=='VIRTUAL'){var _0x288569={};_0x288569[_0x14275a['name']]={'$like':'%'+_0x3cbad6[_0xd233('0x31')][_0xd233('0x3a')]+'%'};return _0x288569;}})});}_0x49fe82=_['merge']({},_0x49fe82,_0x3cbad6[_0xd233('0x3d')]);var _0x212e92={'where':_0x49fe82[_0xd233('0x3b')]};return db[_0xd233('0x3e')][_0xd233('0x1d')](_0x212e92)['then'](function(_0x3b0399){_0x45dbc9[_0xd233('0x1d')]=_0x3b0399;if(_0x3cbad6[_0xd233('0x31')]['includeAll']){_0x49fe82[_0xd233('0x3f')]=[{'all':!![]}];}return db['Interval'][_0xd233('0x40')](_0x49fe82);})[_0xd233('0x25')](function(_0x336ae0){_0x45dbc9[_0xd233('0x41')]=_0x336ae0;return _0x45dbc9;})[_0xd233('0x25')](respondWithFilteredResult(_0x173aeb,_0x49fe82))[_0xd233('0x42')](handleError(_0x173aeb,null));};exports[_0xd233('0x43')]=function(_0xe6d729,_0x46e9ac){var _0x382649={'raw':!![],'where':{'id':_0xe6d729['params']['id']}},_0x74f87b={};_0x74f87b[_0xd233('0x30')]=_['keys'](db[_0xd233('0x3e')][_0xd233('0x44')]);_0x74f87b[_0xd233('0x31')]=_[_0xd233('0x45')](_0xe6d729[_0xd233('0x31')]);_0x74f87b[_0xd233('0x32')]=_[_0xd233('0x33')](_0x74f87b[_0xd233('0x30')],_0x74f87b[_0xd233('0x31')]);_0x382649[_0xd233('0x34')]=_['intersection'](_0x74f87b[_0xd233('0x30')],qs['fields'](_0xe6d729[_0xd233('0x31')][_0xd233('0x35')]));_0x382649[_0xd233('0x34')]=_0x382649['attributes'][_0xd233('0x46')]?_0x382649[_0xd233('0x34')]:_0x74f87b['model'];if(_0xe6d729[_0xd233('0x31')][_0xd233('0x47')]){_0x382649[_0xd233('0x3f')]=[{'all':!![]}];}_0x382649=_[_0xd233('0x3c')]({},_0x382649,_0xe6d729[_0xd233('0x3d')]);return db['Interval'][_0xd233('0x48')](_0x382649)[_0xd233('0x25')](handleEntityNotFound(_0x46e9ac,null))[_0xd233('0x25')](respondWithResult(_0x46e9ac,null))[_0xd233('0x42')](handleError(_0x46e9ac,null));};exports[_0xd233('0x49')]=function(_0x5ba6e1,_0x5d191f){return db[_0xd233('0x3e')][_0xd233('0x49')](_0x5ba6e1[_0xd233('0x4a')],{})['then'](function(_0x21ec96){var _0x13cf4c=_0x5ba6e1['user'][_0xd233('0x4b')]({'plain':!![]});if(!_0x13cf4c)throw new Error(_0xd233('0x4c'));if(_0x13cf4c[_0xd233('0x4d')]===_0xd233('0x4e')){var _0x171b12=_0x21ec96['get']({'plain':!![]});var _0x5b594e=_0xd233('0x27');return db['UserProfileSection'][_0xd233('0x48')]({'where':{'name':_0x5b594e,'userProfileId':_0x13cf4c[_0xd233('0x4f')]},'raw':!![]})['then'](function(_0x3baafb){if(_0x3baafb&&_0x3baafb[_0xd233('0x50')]===0x0){return db[_0xd233('0x51')][_0xd233('0x49')]({'name':_0x171b12[_0xd233('0x29')],'resourceId':_0x171b12['id'],'type':_0x3baafb[_0xd233('0x29')],'sectionId':_0x3baafb['id']},{})[_0xd233('0x25')](function(){return _0x21ec96;});}else{return _0x21ec96;}})[_0xd233('0x42')](function(_0x5dd9be){logger[_0xd233('0x52')](_0xd233('0x53'),_0x5dd9be);throw _0x5dd9be;});}return _0x21ec96;})['then'](respondWithResult(_0x5d191f,0xc9))[_0xd233('0x42')](handleError(_0x5d191f,null));};exports['update']=function(_0x4ecaa7,_0x4a91e7){if(_0x4ecaa7[_0xd233('0x4a')]['id']){delete _0x4ecaa7[_0xd233('0x4a')]['id'];}return db[_0xd233('0x3e')][_0xd233('0x48')]({'where':{'id':_0x4ecaa7[_0xd233('0x54')]['id']}})[_0xd233('0x25')](handleEntityNotFound(_0x4a91e7,null))[_0xd233('0x25')](saveUpdates(_0x4ecaa7[_0xd233('0x4a')],null))[_0xd233('0x25')](respondWithResult(_0x4a91e7,null))[_0xd233('0x42')](handleError(_0x4a91e7,null));};exports[_0xd233('0x26')]=function(_0x1df5d3,_0x4c3993){return db['Interval'][_0xd233('0x48')]({'where':{'id':_0x1df5d3['params']['id']}})[_0xd233('0x25')](handleEntityNotFound(_0x4c3993,null))[_0xd233('0x25')](removeEntity(_0x4c3993,null))['catch'](handleError(_0x4c3993,null));};exports['addInterval']=function(_0x33868b,_0x10e814,_0x3fda22){if(_0x33868b[_0xd233('0x4a')]['id']){delete _0x33868b[_0xd233('0x4a')]['id'];}return db['Interval'][_0xd233('0x48')]({'where':{'id':_0x33868b['params']['id']}})[_0xd233('0x25')](handleEntityNotFound(_0x10e814,null))[_0xd233('0x25')](function(_0x25dad8){if(_0x25dad8){_0x33868b[_0xd233('0x4a')][_0xd233('0x55')]=_0x25dad8['id'];return db[_0xd233('0x3e')][_0xd233('0x49')](_0x33868b['body']);}})['then'](respondWithResult(_0x10e814,null))[_0xd233('0x42')](handleError(_0x10e814,null));};exports['getIntervals']=function(_0x52295d,_0x13851d,_0x29d74d){var _0x1391e6={};var _0x42baf1={};var _0x2e70a1;var _0x49bd84;return db[_0xd233('0x3e')][_0xd233('0x56')]({'where':{'id':_0x52295d[_0xd233('0x54')]['id']}})[_0xd233('0x25')](handleEntityNotFound(_0x13851d,null))[_0xd233('0x25')](function(_0x32ea83){if(_0x32ea83){_0x2e70a1=_0x32ea83;_0x42baf1[_0xd233('0x30')]=_[_0xd233('0x45')](db[_0xd233('0x3e')]['rawAttributes']);_0x42baf1[_0xd233('0x31')]=_[_0xd233('0x45')](_0x52295d[_0xd233('0x31')]);_0x42baf1[_0xd233('0x32')]=_[_0xd233('0x33')](_0x42baf1['model'],_0x42baf1[_0xd233('0x31')]);_0x1391e6[_0xd233('0x34')]=_[_0xd233('0x33')](_0x42baf1[_0xd233('0x30')],qs[_0xd233('0x35')](_0x52295d[_0xd233('0x31')][_0xd233('0x35')]));_0x1391e6[_0xd233('0x34')]=_0x1391e6['attributes']['length']?_0x1391e6[_0xd233('0x34')]:_0x42baf1[_0xd233('0x30')];_0x1391e6['order']=qs['sort'](_0x52295d['query'][_0xd233('0x38')]);_0x1391e6[_0xd233('0x3b')]=qs[_0xd233('0x32')](_[_0xd233('0x39')](_0x52295d[_0xd233('0x31')],_0x42baf1[_0xd233('0x32')]));if(_0x52295d[_0xd233('0x31')][_0xd233('0x3a')]){_0x1391e6[_0xd233('0x3b')]=_['merge'](_0x1391e6[_0xd233('0x3b')],{'$or':_[_0xd233('0x2c')](_0x1391e6[_0xd233('0x34')],function(_0x2a0eea){var _0x2c6e38={};_0x2c6e38[_0x2a0eea]={'$like':'%'+_0x52295d['query'][_0xd233('0x3a')]+'%'};return _0x2c6e38;})});}_0x1391e6=_[_0xd233('0x3c')]({},_0x1391e6,_0x52295d[_0xd233('0x3d')]);return _0x2e70a1['getIntervals'](_0x1391e6);}})[_0xd233('0x25')](function(_0x2d18af){if(_0x2d18af){_0x49bd84=_0x2d18af['length'];if(!_0x52295d[_0xd233('0x31')][_0xd233('0x36')]('nolimit')){_0x1391e6['limit']=qs[_0xd233('0x1f')](_0x52295d[_0xd233('0x31')][_0xd233('0x1f')]);_0x1391e6[_0xd233('0x1e')]=qs[_0xd233('0x1e')](_0x52295d['query'][_0xd233('0x1e')]);}return _0x2e70a1['getIntervals'](_0x1391e6);}})[_0xd233('0x25')](function(_0x3e980a){if(_0x3e980a){return _0x3e980a?{'count':_0x49bd84,'rows':_0x3e980a}:null;}})[_0xd233('0x25')](respondWithResult(_0x13851d,null))[_0xd233('0x42')](handleError(_0x13851d,null));};exports['addIntervals']=function(_0xaa854,_0x35e8c5,_0x33dd2e){return db['Interval'][_0xd233('0x56')]({'where':{'id':_0xaa854[_0xd233('0x54')]['id']}})[_0xd233('0x25')](handleEntityNotFound(_0x35e8c5,null))[_0xd233('0x25')](function(_0x2e9aac){if(_0x2e9aac){return db[_0xd233('0x57')][_0xd233('0x58')](function(_0x1e1e3f){return db[_0xd233('0x3e')]['destroy']({'where':{'IntervalId':_0xaa854['params']['id']},'transaction':_0x1e1e3f})['then'](function(_0x21b6d5){var _0x401dc1=_[_0xd233('0x2c')](_0xaa854[_0xd233('0x4a')],function(_0x3fa52e){delete _0x3fa52e['id'];_0x3fa52e[_0xd233('0x55')]=_0xaa854[_0xd233('0x54')]['id'];return _0x3fa52e;});return db[_0xd233('0x3e')]['bulkCreate'](_0x401dc1,{'transaction':_0x1e1e3f});});})[_0xd233('0x25')](function(){return db[_0xd233('0x3e')][_0xd233('0x40')]({'where':{'IntervalId':_0xaa854['params']['id']}});});}})[_0xd233('0x25')](respondWithResult(_0x35e8c5,null))[_0xd233('0x42')](handleError(_0x35e8c5,null));};