diff --git a/www/src/services/device-service.js b/www/src/services/device-service.js index 04dc6db..2008519 100644 --- a/www/src/services/device-service.js +++ b/www/src/services/device-service.js @@ -79,6 +79,23 @@ function DeviceService() { return codeObject.code; } + async function getIntegration(id) { + if (!id) return null; + let response = await Net.sendRequest({ + method: "GET", + url: "/api/integrations/" + id, + }); + + if (response.status !== 200) { + let responseData = JSON.parse(response.data); + throw new Error(responseData.error); + } + + let integration = JSON.parse(response.data); + integration = Serializer.deserializeIntegration(integration); + return integration; + } + async function getIntegrations() { let response = await Net.sendRequest({ method: "GET", @@ -113,6 +130,7 @@ function DeviceService() { updateDevice, deleteDevice, getRegistrationCode, + getIntegration, getIntegrations, deleteIntegration, }; diff --git a/www/src/views/devices-view.jsx b/www/src/views/devices-view.jsx deleted file mode 100644 index 2764548..0000000 --- a/www/src/views/devices-view.jsx +++ /dev/null @@ -1,195 +0,0 @@ -import { - createResource, - createSignal, - mergeProps, - onMount, - Show, -} from "solid-js"; - -import List from "../components/list"; -import CreateDeviceModal from "../modals/create-device-modal"; -import DeviceService from "../services/device-service"; -import ShowRegistrationCodeModal from "../modals/show-registration-code-modal"; -import DeleteIntegrationModal from "../modals/delete-integration-modal"; - -function DevicesView(props) { - props = mergeProps({ onIntegrationClicked: () => {} }, props); - const DEVICES_LIST_TYPE = "devices"; - const INTEGRATION_LIST_TYPE = "integrations"; - - const [listType, setListType] = createSignal(INTEGRATION_LIST_TYPE); - const [devices, setDevices] = createSignal([]); - const [integrations, { refetch: refetchIntegrations }] = createResource( - DeviceService.getIntegrations - ); - - CreateDeviceModal.onDeviceCreated(() => { - handleRefreshDevices(); - }); - - onMount(() => { - handleRefreshDevices(); - DeleteIntegrationModal.onIntegrationDeleted(() => { - refetchIntegrations(); - }); - }); - - function handleNewDevice() { - CreateDeviceModal.Handler.show(); - } - - async function handleRefreshDevices() { - let devices = await DeviceService.getDevices(); - setDevices(devices); - } - - function handleRegisterIntegration() { - ShowRegistrationCodeModal.Handler.show(); - } - - function handleDeleteIntegration(integration) { - DeleteIntegrationModal.setIntegration(integration); - DeleteIntegrationModal.Handler.show(); - } - - function handleIntegrationItemClicked(item) { - props.onIntegrationClicked(item.integration); - } - - return ( -