Skip to content

Commit

Permalink
Change server status check to event endpoint (#670)
Browse files Browse the repository at this point in the history
* chore: change server status check to event endpoint

* chore: remove ServerAdapter and update App tests
  • Loading branch information
apinkert authored Feb 7, 2025
1 parent 0842c34 commit 332e9a1
Show file tree
Hide file tree
Showing 4 changed files with 33 additions and 22 deletions.
14 changes: 7 additions & 7 deletions src/app/__tests__/App.test.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -61,15 +61,15 @@ jest.mock('@redhat-cloud-services/frontend-components/useChrome', () => {
const mockMaintenance = (isUp: boolean) => {
const response = isUp
? {
status: 'UP',
data: [],
links: {},
meta: {
count: 0,
},
}
: {
start_time: '2021-06-11T13:09:31.213141',
end_time: '2021-06-11T18:09:31.213141',
status: 'MAINTENANCE',
};
: {};

fetchMock.get('/api/notifications/v1.0/status', {
fetchMock.get('/api/notifications/v1.0/notifications/events', {
status: 200,
body: response,
});
Expand Down
16 changes: 13 additions & 3 deletions src/app/useApp.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import { useEffect, useState } from 'react';

import Config from '../config/Config';
import { useGetServerStatus } from '../services/GetServerStatus';
import { Server } from '../types/Server';
import { Server, ServerStatus } from '../types/Server';
import { AppContext } from './AppContext';

export const useApp = (): Partial<AppContext> => {
Expand All @@ -32,8 +32,18 @@ export const useApp = (): Partial<AppContext> => {
}, []);

useEffect(() => {
if (serverStatus.payload?.type === 'ServerStatus') {
setServer(serverStatus.payload.value);
if (serverStatus.payload?.type === 'Events') {
if (serverStatus.payload?.status === 200) {
setServer({
status: ServerStatus.RUNNING,
});
} else {
setServer({
status: ServerStatus.MAINTENANCE,
from: new Date(),
to: new Date(),
});
}
}
}, [serverStatus.payload]);

Expand Down
18 changes: 13 additions & 5 deletions src/services/GetServerStatus.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,13 +5,21 @@ import {
} from 'openapi2typescript';
import { useQuery } from 'react-fetching-library';

import { Operations } from '../generated/OpenapiPrivate';
import { toServer } from '../types/adapters/ServerAdapter';
import { Operations } from '../generated/OpenapiNotifications';
import { toNotificationEvent } from '../types/adapters/NotificationEventAdapter';

const adapter = validationResponseTransformer(
(payload: Operations.StatusResourceGetCurrentStatus.Payload) => {
(payload: Operations.EventResource$v1GetEvents.Payload) => {
if (payload.status === 200) {
return validatedResponse('ServerStatus', 200, toServer(), payload.errors);
return validatedResponse(
'Events',
200,
{
...payload.value,
data: payload.value.data.map(toNotificationEvent),
},
payload.errors
);
}

return payload;
Expand All @@ -20,7 +28,7 @@ const adapter = validationResponseTransformer(

export const useGetServerStatus = () => {
return useTransformQueryResponse(
useQuery(Operations.StatusResourceGetCurrentStatus.actionCreator()),
useQuery(Operations.EventResource$v1GetEvents.actionCreator({})),
adapter
);
};
7 changes: 0 additions & 7 deletions src/types/adapters/ServerAdapter.ts

This file was deleted.

0 comments on commit 332e9a1

Please sign in to comment.