diff --git a/app/routes/_data.machines._index/route.tsx b/app/routes/_data.machines._index/route.tsx index 1193ae0..27b7fc4 100644 --- a/app/routes/_data.machines._index/route.tsx +++ b/app/routes/_data.machines._index/route.tsx @@ -16,12 +16,14 @@ import MachineRow from './machine' export async function loader({ request }: LoaderFunctionArgs) { const session = await getSession(request.headers.get('Cookie')) + const [machines, routes] = await Promise.all([ + pull<{ nodes: Machine[] }>('v1/node', session.get('hsApiKey')!), + pull<{ routes: Route[] }>('v1/routes', session.get('hsApiKey')!), + ]) - const machines = await pull<{ nodes: Machine[] }>('v1/node', session.get('hsApiKey')!) - const routes = await pull<{ routes: Route[] }>('v1/routes', session.get('hsApiKey')!) const context = await getContext() - let magic: string | undefined + if (context.hasConfig) { const config = await getConfig() if (config.dns_config.magic_dns) { @@ -32,7 +34,7 @@ export async function loader({ request }: LoaderFunctionArgs) { return { nodes: machines.nodes, routes: routes.routes, - magic + magic, } } @@ -40,14 +42,14 @@ export async function action({ request }: ActionFunctionArgs) { const session = await getSession(request.headers.get('Cookie')) if (!session.has('hsApiKey')) { return json({ message: 'Unauthorized' }, { - status: 401 + status: 401, }) } const data = await request.formData() if (!data.has('_method') || !data.has('id')) { return json({ message: 'No method or ID provided' }, { - status: 400 + status: 400, }) } @@ -55,51 +57,49 @@ export async function action({ request }: ActionFunctionArgs) { const method = String(data.get('_method')) switch (method) { - case 'delete': { - await del(`v1/node/${id}`, session.get('hsApiKey')!) - return json({ message: 'Machine removed' }) - } - - case 'expire': { - console.log('expire') - const data = await post(`v1/node/${id}/expire`, session.get('hsApiKey')!) - console.log(data) - return json({ message: 'Machine expired' }) - } - - case 'rename': { - if (!data.has('name')) { - return json({ message: 'No name provided' }, { - status: 400 - }) + case 'delete': { + await del(`v1/node/${id}`, session.get('hsApiKey')!) + return json({ message: 'Machine removed' }) } - const name = String(data.get('name')) - - await post(`v1/node/${id}/rename/${name}`, session.get('hsApiKey')!) - return json({ message: 'Machine renamed' }) - } - - case 'routes': { - if (!data.has('route') || !data.has('enabled')) { - return json({ message: 'No route or enabled provided' }, { - status: 400 - }) + case 'expire': { + await post(`v1/node/${id}/expire`, session.get('hsApiKey')!) + return json({ message: 'Machine expired' }) } - const route = String(data.get('route')) - const enabled = data.get('enabled') === 'true' - const postfix = enabled ? 'enable' : 'disable' + case 'rename': { + if (!data.has('name')) { + return json({ message: 'No name provided' }, { + status: 400, + }) + } - await post(`v1/routes/${route}/${postfix}`, session.get('hsApiKey')!) - return json({ message: 'Route updated' }) - } + const name = String(data.get('name')) - default: { - return json({ message: 'Invalid method' }, { - status: 400 - }) - } + await post(`v1/node/${id}/rename/${name}`, session.get('hsApiKey')!) + return json({ message: 'Machine renamed' }) + } + + case 'routes': { + if (!data.has('route') || !data.has('enabled')) { + return json({ message: 'No route or enabled provided' }, { + status: 400, + }) + } + + const route = String(data.get('route')) + const enabled = data.get('enabled') === 'true' + const postfix = enabled ? 'enable' : 'disable' + + await post(`v1/routes/${route}/${postfix}`, session.get('hsApiKey')!) + return json({ message: 'Route updated' }) + } + + default: { + return json({ message: 'Invalid method' }, { + status: 400, + }) + } } } @@ -110,42 +110,45 @@ export default function Page() { return ( <> -
| Name | -
-
+ Machines+
|
|---|