[add] Jhipster base
This commit is contained in:
@@ -0,0 +1,177 @@
|
||||
import axios from 'axios';
|
||||
|
||||
import { REQUEST, SUCCESS, FAILURE } from 'app/shared/reducers/action-type.util';
|
||||
|
||||
export const ACTION_TYPES = {
|
||||
FETCH_LOGS: 'administration/FETCH_LOGS',
|
||||
FETCH_LOGS_CHANGE_LEVEL: 'administration/FETCH_LOGS_CHANGE_LEVEL',
|
||||
FETCH_HEALTH: 'administration/FETCH_HEALTH',
|
||||
FETCH_METRICS: 'administration/FETCH_METRICS',
|
||||
FETCH_THREAD_DUMP: 'administration/FETCH_THREAD_DUMP',
|
||||
FETCH_CONFIGURATIONS: 'administration/FETCH_CONFIGURATIONS',
|
||||
FETCH_ENV: 'administration/FETCH_ENV',
|
||||
FETCH_AUDITS: 'administration/FETCH_AUDITS'
|
||||
};
|
||||
|
||||
const initialState = {
|
||||
loading: false,
|
||||
errorMessage: null,
|
||||
logs: {
|
||||
loggers: [] as any[]
|
||||
},
|
||||
health: {} as any,
|
||||
metrics: {} as any,
|
||||
threadDump: [],
|
||||
configuration: {
|
||||
configProps: {} as any,
|
||||
env: {} as any
|
||||
},
|
||||
audits: [],
|
||||
totalItems: 0
|
||||
};
|
||||
|
||||
export type AdministrationState = Readonly<typeof initialState>;
|
||||
|
||||
// Reducer
|
||||
|
||||
export default (state: AdministrationState = initialState, action): AdministrationState => {
|
||||
switch (action.type) {
|
||||
case REQUEST(ACTION_TYPES.FETCH_METRICS):
|
||||
case REQUEST(ACTION_TYPES.FETCH_THREAD_DUMP):
|
||||
case REQUEST(ACTION_TYPES.FETCH_LOGS):
|
||||
case REQUEST(ACTION_TYPES.FETCH_CONFIGURATIONS):
|
||||
case REQUEST(ACTION_TYPES.FETCH_ENV):
|
||||
case REQUEST(ACTION_TYPES.FETCH_AUDITS):
|
||||
case REQUEST(ACTION_TYPES.FETCH_HEALTH):
|
||||
return {
|
||||
...state,
|
||||
errorMessage: null,
|
||||
loading: true
|
||||
};
|
||||
case FAILURE(ACTION_TYPES.FETCH_METRICS):
|
||||
case FAILURE(ACTION_TYPES.FETCH_THREAD_DUMP):
|
||||
case FAILURE(ACTION_TYPES.FETCH_LOGS):
|
||||
case FAILURE(ACTION_TYPES.FETCH_CONFIGURATIONS):
|
||||
case FAILURE(ACTION_TYPES.FETCH_ENV):
|
||||
case FAILURE(ACTION_TYPES.FETCH_AUDITS):
|
||||
case FAILURE(ACTION_TYPES.FETCH_HEALTH):
|
||||
return {
|
||||
...state,
|
||||
loading: false,
|
||||
errorMessage: action.payload
|
||||
};
|
||||
case SUCCESS(ACTION_TYPES.FETCH_METRICS):
|
||||
return {
|
||||
...state,
|
||||
loading: false,
|
||||
metrics: action.payload.data
|
||||
};
|
||||
case SUCCESS(ACTION_TYPES.FETCH_THREAD_DUMP):
|
||||
return {
|
||||
...state,
|
||||
loading: false,
|
||||
threadDump: action.payload.data
|
||||
};
|
||||
case SUCCESS(ACTION_TYPES.FETCH_LOGS):
|
||||
return {
|
||||
...state,
|
||||
loading: false,
|
||||
logs: {
|
||||
loggers: action.payload.data
|
||||
}
|
||||
};
|
||||
case SUCCESS(ACTION_TYPES.FETCH_CONFIGURATIONS):
|
||||
return {
|
||||
...state,
|
||||
loading: false,
|
||||
configuration: {
|
||||
...state.configuration,
|
||||
configProps: action.payload.data
|
||||
}
|
||||
};
|
||||
case SUCCESS(ACTION_TYPES.FETCH_ENV):
|
||||
return {
|
||||
...state,
|
||||
loading: false,
|
||||
configuration: {
|
||||
...state.configuration,
|
||||
env: action.payload.data
|
||||
}
|
||||
};
|
||||
case SUCCESS(ACTION_TYPES.FETCH_AUDITS):
|
||||
return {
|
||||
...state,
|
||||
loading: false,
|
||||
audits: action.payload.data,
|
||||
totalItems: action.payload.headers['x-total-count']
|
||||
};
|
||||
case SUCCESS(ACTION_TYPES.FETCH_HEALTH):
|
||||
return {
|
||||
...state,
|
||||
loading: false,
|
||||
health: action.payload.data
|
||||
};
|
||||
default:
|
||||
return state;
|
||||
}
|
||||
};
|
||||
|
||||
// Actions
|
||||
|
||||
export const systemHealth = () => ({
|
||||
type: ACTION_TYPES.FETCH_HEALTH,
|
||||
payload: axios.get('management/health')
|
||||
});
|
||||
|
||||
export const systemMetrics = () => ({
|
||||
type: ACTION_TYPES.FETCH_METRICS,
|
||||
payload: axios.get('management/metrics')
|
||||
});
|
||||
|
||||
export const systemThreadDump = () => ({
|
||||
type: ACTION_TYPES.FETCH_THREAD_DUMP,
|
||||
payload: axios.get('management/threaddump')
|
||||
});
|
||||
|
||||
export const getLoggers = () => ({
|
||||
type: ACTION_TYPES.FETCH_LOGS,
|
||||
payload: axios.get('management/logs')
|
||||
});
|
||||
|
||||
export const changeLogLevel = (name, level) => {
|
||||
const body = {
|
||||
level,
|
||||
name
|
||||
};
|
||||
return async dispatch => {
|
||||
await dispatch({
|
||||
type: ACTION_TYPES.FETCH_LOGS_CHANGE_LEVEL,
|
||||
payload: axios.put('management/logs', body)
|
||||
});
|
||||
dispatch(getLoggers());
|
||||
};
|
||||
};
|
||||
|
||||
export const getConfigurations = () => ({
|
||||
type: ACTION_TYPES.FETCH_CONFIGURATIONS,
|
||||
payload: axios.get('management/configprops')
|
||||
});
|
||||
|
||||
export const getEnv = () => ({
|
||||
type: ACTION_TYPES.FETCH_ENV,
|
||||
payload: axios.get('management/env')
|
||||
});
|
||||
|
||||
export const getAudits = (page, size, sort, fromDate, toDate) => {
|
||||
let requestUrl = `management/audits${sort ? `?page=${page}&size=${size}&sort=${sort}` : ''}`;
|
||||
if (fromDate) {
|
||||
requestUrl += `&fromDate=${fromDate}`;
|
||||
}
|
||||
if (toDate) {
|
||||
requestUrl += `&toDate=${toDate}`;
|
||||
}
|
||||
return {
|
||||
type: ACTION_TYPES.FETCH_AUDITS,
|
||||
payload: axios.get(requestUrl)
|
||||
};
|
||||
};
|
||||
Reference in New Issue
Block a user