call server
parent
964ceb9372
commit
e9c7bacb06
1
.env
1
.env
|
@ -2,3 +2,4 @@
|
||||||
|
|
||||||
REACT_APP_IDENTITY_AUTHENTICATION_URL=https://toodle.ddns.net/identity-server-api/identity/authenticate?UserName={username}&Password={password}
|
REACT_APP_IDENTITY_AUTHENTICATION_URL=https://toodle.ddns.net/identity-server-api/identity/authenticate?UserName={username}&Password={password}
|
||||||
REACT_APP_NETWORK_RESURRECTOR_API_URL=http://localhost:5064
|
REACT_APP_NETWORK_RESURRECTOR_API_URL=http://localhost:5064
|
||||||
|
REACT_APP_NETWORK_RESURRECTOR_SERVER_URL=http://localhost:5062
|
|
@ -1,10 +1,21 @@
|
||||||
import { get } from "../../utils/axios";
|
import { get } from "../../utils/axios";
|
||||||
|
|
||||||
const url = `${process.env.REACT_APP_NETWORK_RESURRECTOR_API_URL}/network`;
|
const apiUrl = `${process.env.REACT_APP_NETWORK_RESURRECTOR_API_URL}/network`;
|
||||||
|
const serverUrl = `${process.env.REACT_APP_NETWORK_RESURRECTOR_SERVER_URL}/resurrector`;
|
||||||
|
|
||||||
const readMachines = () => {
|
const readMachines = () => {
|
||||||
const machinesPromise = get(`${url}/machines`);
|
const machinesPromise = get(`${apiUrl}/machines`);
|
||||||
return machinesPromise;
|
return machinesPromise;
|
||||||
};
|
};
|
||||||
|
|
||||||
export { readMachines };
|
const wakeMachine = macAddress => {
|
||||||
|
const promise = get(`${serverUrl}/wake`, { macAddress });
|
||||||
|
return promise;
|
||||||
|
};
|
||||||
|
|
||||||
|
const pingMachine = ipAddressOrMachineName => {
|
||||||
|
const promise = get(`${serverUrl}/ping`, { ipAddressOrMachineName });
|
||||||
|
return promise;
|
||||||
|
};
|
||||||
|
|
||||||
|
export { readMachines, wakeMachine, pingMachine };
|
||||||
|
|
|
@ -3,31 +3,53 @@ import {
|
||||||
ApplicationStateContext,
|
ApplicationStateContext,
|
||||||
ApplicationDispatchContext
|
ApplicationDispatchContext
|
||||||
} from "../../../state/ApplicationContexts";
|
} from "../../../state/ApplicationContexts";
|
||||||
import { readMachines } from "../api";
|
import * as api from "../api";
|
||||||
import MachinesList from "./MachinesList";
|
import MachinesList from "./MachinesList";
|
||||||
import { PowerSettingsNew, LastPage } from "@material-ui/icons";
|
import { PowerSettingsNew, LastPage } from "@material-ui/icons";
|
||||||
|
import { useToast } from "../../../hooks";
|
||||||
|
|
||||||
const MachinesContainer = () => {
|
const MachinesContainer = () => {
|
||||||
const state = useContext(ApplicationStateContext);
|
const state = useContext(ApplicationStateContext);
|
||||||
const dispatchActions = useContext(ApplicationDispatchContext);
|
const dispatchActions = useContext(ApplicationDispatchContext);
|
||||||
|
|
||||||
|
const { success, error } = useToast();
|
||||||
|
|
||||||
const handleReadMachines = useCallback(async () => {
|
const handleReadMachines = useCallback(async () => {
|
||||||
const machines = await readMachines();
|
const machines = await api.readMachines();
|
||||||
const data = Object.assign(machines, { loaded: true });
|
const data = Object.assign(machines, { loaded: true });
|
||||||
dispatchActions.onNetworkChange("machines", data);
|
dispatchActions.onNetworkChange("machines", data);
|
||||||
}, [dispatchActions]);
|
}, [dispatchActions]);
|
||||||
|
|
||||||
const onClick = machine => () => alert(machine);
|
const wakeMachine = machine => async () => {
|
||||||
|
const result = await api.wakeMachine(machine.macAddress);
|
||||||
|
if (result.success) {
|
||||||
|
success(result.status);
|
||||||
|
} else {
|
||||||
|
error(result.status);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
const pingMachine = machine => async () => {
|
||||||
|
const result = await api.pingMachine(
|
||||||
|
machine.iPv4Address || machine.machineName
|
||||||
|
);
|
||||||
|
if (result.success) {
|
||||||
|
success(result.status);
|
||||||
|
} else {
|
||||||
|
error(result.status);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
const actions = [
|
const actions = [
|
||||||
{
|
{
|
||||||
code: "wake",
|
code: "wake",
|
||||||
effect: onClick,
|
effect: wakeMachine,
|
||||||
icon: PowerSettingsNew,
|
icon: PowerSettingsNew,
|
||||||
tooltip: "Wake"
|
tooltip: "Wake"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
code: "ping",
|
code: "ping",
|
||||||
effect: onClick,
|
effect: pingMachine,
|
||||||
icon: LastPage,
|
icon: LastPage,
|
||||||
tooltip: "Ping"
|
tooltip: "Ping"
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue