virtual-machines-panel-init
[arvados-workbench2.git] / src / store / virtual-machines / virtual-machines-actions.ts
1 // Copyright (C) The Arvados Authors. All rights reserved.
2 //
3 // SPDX-License-Identifier: AGPL-3.0
4
5 import { Dispatch } from "redux";
6 import { RootState } from '~/store/store';
7 import { ServiceRepository } from "~/services/services";
8 import { navigateToVirtualMachines } from "../navigation/navigation-action";
9 import { bindDataExplorerActions } from '~/store/data-explorer/data-explorer-action';
10 import { formatDate } from "~/common/formatters";
11 import { unionize, ofType, UnionOf } from "~/common/unionize";
12
13 export const virtualMachinesAction = unionize({
14     SET_REQUESTED_DATE: ofType<string>(),
15 });
16
17 export type VirtualMachineActions = UnionOf<typeof virtualMachinesAction>;
18
19 export const VIRTUAL_MACHINES_PANEL = 'virtualMachinesPanel';
20
21 export const openVirtualMachines = () =>
22     async (dispatch: Dispatch, getState: () => RootState, services: ServiceRepository) => {
23         const virtualMachines = await services.virtualMachineService.list();
24         // const logins = await services.virtualMachineService.logins(virtualMachines.items[0].uuid);
25         // const getAllLogins = await services.virtualMachineService.getAllLogins();
26         console.log(virtualMachines);
27         // console.log(logins);
28         // console.log(getAllLogins);      
29         dispatch<any>(navigateToVirtualMachines);
30     };
31
32 export const loadRequestedDate = () =>
33     (dispatch: Dispatch, getState: () => RootState, services: ServiceRepository) => {
34         const date = services.virtualMachineService.getRequestedDate();
35         dispatch(virtualMachinesAction.SET_REQUESTED_DATE(date));
36     };
37
38 export const saveRequestedDate = () =>
39     (dispatch: Dispatch, getState: () => RootState, services: ServiceRepository) => {
40         const date = formatDate((new Date).toISOString());
41         services.virtualMachineService.saveRequestedDate(date);
42         dispatch<any>(loadRequestedDate());
43     };
44
45 const virtualMachinesActions = bindDataExplorerActions(VIRTUAL_MACHINES_PANEL);
46
47 export const loadVirtualMachinesPanel = () =>
48     (dispatch: Dispatch) => {
49         dispatch(virtualMachinesActions.REQUEST_ITEMS());
50     };