Fetch servers info and show in ServersTable

This commit is contained in:
Ken Hibino
2020-12-31 07:02:54 -08:00
parent d78abcf584
commit 3f9e8820d9
6 changed files with 178 additions and 5 deletions

View File

@@ -0,0 +1,44 @@
import { Dispatch } from "redux";
import { listServers, ListServersResponse } from "../api";
// List of server related action types.
export const LIST_SERVERS_BEGIN = "LIST_SERVERS_BEGIN";
export const LIST_SERVERS_SUCCESS = "LIST_SERVERS_SUCCESS";
export const LIST_SERVERS_ERROR = "LIST_SERVERS_ERROR";
interface ListServersBeginAction {
type: typeof LIST_SERVERS_BEGIN;
}
interface ListServersSuccessAction {
type: typeof LIST_SERVERS_SUCCESS;
payload: ListServersResponse;
}
interface ListServersErrorAction {
type: typeof LIST_SERVERS_ERROR;
error: string; // error description
}
// Union of all server related actions.
export type ServersActionTypes =
| ListServersBeginAction
| ListServersSuccessAction
| ListServersErrorAction;
export function listServersAsync() {
return async (dispatch: Dispatch<ServersActionTypes>) => {
dispatch({ type: LIST_SERVERS_BEGIN });
try {
const response = await listServers();
dispatch({
type: LIST_SERVERS_SUCCESS,
payload: response,
});
} catch (error) {
console.error("listServersAsync: ", error);
dispatch({
type: LIST_SERVERS_ERROR,
error: "Could not retrieve servers info",
});
}
};
}