From 098a00c72dad05856a9d62df674f82a5828bc595 Mon Sep 17 00:00:00 2001 From: Ben Allfree Date: Sun, 5 Nov 2023 03:22:41 -0800 Subject: [PATCH] chore: convert rpc to rest --- frontends/dashboard/package.json | 2 +- .../src/pocketbase-client/PocketbaseClient.ts | 60 +++----- .../[instanceId]/Danger/Maintenance.svelte | 4 +- .../[instanceId]/Danger/RenameInstance.svelte | 8 +- .../[instanceId]/Danger/VersionChange.svelte | 23 +-- .../[instanceId]/Danger/VersionPicker.svelte | 48 ++++++ .../[instanceId]/Secrets/Form.svelte | 24 +-- .../pb_hooks/src/instances-create.pb.js | 58 ++++++++ .../pb_hooks/src/instances-update.pb.js | 80 ++++++++++ src/server.ts | 4 - .../PocketBaseService/docker-compose.yaml | 13 -- .../PocketbaseReleaseVersionService/index.ts | 1 + src/services/RpcService/commands.ts | 117 --------------- src/services/RpcService/index.ts | 138 ------------------ src/services/clientService/PbClient.ts | 3 - src/services/clientService/RpcHelper.ts | 75 ---------- src/services/index.ts | 1 - .../pocketbase-client-helpers/RestHelper.ts | 47 ++++++ .../pocketbase-client-helpers/RpcHelper.ts | 100 ------------- src/shared/pocketbase-client-helpers/index.ts | 2 +- src/shared/safeCatch.ts | 53 ------- .../schema/{Rpc => Rest}/CreateInstance.ts | 0 src/shared/schema/Rest/UpdateInstance.ts | 52 +++++++ src/shared/schema/Rest/index.ts | 19 +++ src/shared/schema/Rpc/RenameInstance.ts | 20 --- src/shared/schema/Rpc/SaveSecrets.ts | 34 ----- src/shared/schema/Rpc/SaveVersion.ts | 24 --- .../schema/Rpc/SetInstanceMaintenance.ts | 20 --- src/shared/schema/Rpc/index.ts | 59 -------- src/shared/schema/index.ts | 2 +- .../commands/cleanup/deleteInstance.ts | 37 ----- 31 files changed, 357 insertions(+), 771 deletions(-) create mode 100644 frontends/dashboard/src/routes/app/instances/[instanceId]/Danger/VersionPicker.svelte create mode 100644 src/mothership-app/pb_hooks/src/instances-create.pb.js create mode 100644 src/mothership-app/pb_hooks/src/instances-update.pb.js delete mode 100644 src/services/PocketBaseService/docker-compose.yaml delete mode 100644 src/services/RpcService/commands.ts delete mode 100644 src/services/RpcService/index.ts delete mode 100644 src/services/clientService/RpcHelper.ts create mode 100644 src/shared/pocketbase-client-helpers/RestHelper.ts delete mode 100644 src/shared/pocketbase-client-helpers/RpcHelper.ts delete mode 100644 src/shared/safeCatch.ts rename src/shared/schema/{Rpc => Rest}/CreateInstance.ts (100%) create mode 100644 src/shared/schema/Rest/UpdateInstance.ts create mode 100644 src/shared/schema/Rest/index.ts delete mode 100644 src/shared/schema/Rpc/RenameInstance.ts delete mode 100644 src/shared/schema/Rpc/SaveSecrets.ts delete mode 100644 src/shared/schema/Rpc/SaveVersion.ts delete mode 100644 src/shared/schema/Rpc/SetInstanceMaintenance.ts delete mode 100644 src/shared/schema/Rpc/index.ts diff --git a/frontends/dashboard/package.json b/frontends/dashboard/package.json index 3097d284..d3b31cf7 100644 --- a/frontends/dashboard/package.json +++ b/frontends/dashboard/package.json @@ -6,7 +6,7 @@ "scripts": { "check:types": "svelte-check", "preview": "npx http-server@latest ./build -P \"http://localhost:8080?\"", - "dev": "vite dev --force", + "dev": "vite dev --force --host=0.0.0.0", "build": "NODE_ENV=production vite build", "lint": "prettier --check .", "format": "prettier --write ." diff --git a/frontends/dashboard/src/pocketbase-client/PocketbaseClient.ts b/frontends/dashboard/src/pocketbase-client/PocketbaseClient.ts index 47912eba..976d0222 100644 --- a/frontends/dashboard/src/pocketbase-client/PocketbaseClient.ts +++ b/frontends/dashboard/src/pocketbase-client/PocketbaseClient.ts @@ -1,27 +1,19 @@ import { CreateInstancePayloadSchema, LoggerService, - RenameInstancePayloadSchema, - RpcCommands, - SaveSecretsPayloadSchema, - SaveVersionPayloadSchema, - SetInstanceMaintenancePayloadSchema, + RestCommands, + RestMethods, + UpdateInstancePayload, + UpdateInstancePayloadSchema, + UpdateInstanceResult, assertExists, - createRpcHelper, + createRestHelper, createWatchHelper, type CreateInstancePayload, type CreateInstanceResult, type InstanceFields, type InstanceId, type InstanceLogFields, - type RenameInstancePayload, - type RenameInstanceResult, - type SaveSecretsPayload, - type SaveSecretsResult, - type SaveVersionPayload, - type SaveVersionResult, - type SetInstanceMaintenancePayload, - type SetInstanceMaintenanceResult, } from '$shared' import { INSTANCE_URL } from '$src/env' import { createGenericSyncEvent } from '$util/events' @@ -108,35 +100,21 @@ export const createPocketbaseClient = (config: PocketbaseClientConfig) => { const watchHelper = createWatchHelper({ client }) const { watchById, watchAllById } = watchHelper - const rpcMixin = createRpcHelper({ client, watchHelper }) - const { mkRpc } = rpcMixin + const restMixin = createRestHelper({ client, watchHelper }) + const { mkRest } = restMixin - const createInstance = mkRpc( - RpcCommands.CreateInstance, + const createInstance = mkRest( + RestCommands.Instance, + RestMethods.Create, CreateInstancePayloadSchema, ) - const saveSecrets = mkRpc( - RpcCommands.SaveSecrets, - SaveSecretsPayloadSchema, + + const updateInstance = mkRest( + RestCommands.Instance, + RestMethods.Update, + UpdateInstancePayloadSchema, ) - const saveVersion = mkRpc( - RpcCommands.SaveVersion, - SaveVersionPayloadSchema, - ) - - const renameInstance = mkRpc( - RpcCommands.RenameInstance, - RenameInstancePayloadSchema, - ) - - const setInstanceMaintenance = mkRpc< - SetInstanceMaintenancePayload, - SetInstanceMaintenanceResult - >(RpcCommands.SetInstanceMaintenance, SetInstanceMaintenancePayloadSchema) - - // gen:mkRpc - const getInstanceById = ( id: InstanceId, ): Promise => @@ -295,7 +273,6 @@ export const createPocketbaseClient = (config: PocketbaseClientConfig) => { return { client, - saveSecrets, watchInstanceLog, getAuthStoreProps, parseError, @@ -313,9 +290,6 @@ export const createPocketbaseClient = (config: PocketbaseClientConfig) => { watchInstanceById, getAllInstancesById, resendVerificationEmail, - renameInstance, - setInstanceMaintenance, - // gen:export - saveVersion, + updateInstance, } } diff --git a/frontends/dashboard/src/routes/app/instances/[instanceId]/Danger/Maintenance.svelte b/frontends/dashboard/src/routes/app/instances/[instanceId]/Danger/Maintenance.svelte index 4417ff06..2a1104b3 100644 --- a/frontends/dashboard/src/routes/app/instances/[instanceId]/Danger/Maintenance.svelte +++ b/frontends/dashboard/src/routes/app/instances/[instanceId]/Danger/Maintenance.svelte @@ -5,7 +5,7 @@ import { client } from '$src/pocketbase-client' import { instance } from '../store' - const { setInstanceMaintenance } = client() + const { updateInstance } = client() $: ({ id, maintenance } = $instance) @@ -14,7 +14,7 @@ const isChecked = target.checked // Update the database with the new value - setInstanceMaintenance({ instanceId: id, maintenance: isChecked }).then( + updateInstance({ instanceId: id, fields: { maintenance: isChecked } }).then( () => 'saved', ) } diff --git a/frontends/dashboard/src/routes/app/instances/[instanceId]/Danger/RenameInstance.svelte b/frontends/dashboard/src/routes/app/instances/[instanceId]/Danger/RenameInstance.svelte index 8723ecea..b096a57f 100644 --- a/frontends/dashboard/src/routes/app/instances/[instanceId]/Danger/RenameInstance.svelte +++ b/frontends/dashboard/src/routes/app/instances/[instanceId]/Danger/RenameInstance.svelte @@ -6,7 +6,7 @@ import { slide } from 'svelte/transition' import { instance } from '../store' - const { renameInstance } = client() + const { updateInstance } = client() $: ({ subdomain, id } = $instance) @@ -39,9 +39,11 @@ // If they select yes, then update the version in pocketbase if (confirmVersionChange) { - renameInstance({ + updateInstance({ instanceId: id, - subdomain: instanceNameValidation, + fields: { + subdomain: instanceNameValidation, + }, }) .then(() => 'saved') .catch((error) => { diff --git a/frontends/dashboard/src/routes/app/instances/[instanceId]/Danger/VersionChange.svelte b/frontends/dashboard/src/routes/app/instances/[instanceId]/Danger/VersionChange.svelte index 6ebec547..bca3c90c 100644 --- a/frontends/dashboard/src/routes/app/instances/[instanceId]/Danger/VersionChange.svelte +++ b/frontends/dashboard/src/routes/app/instances/[instanceId]/Danger/VersionChange.svelte @@ -5,13 +5,14 @@ import { client } from '$src/pocketbase-client' import { slide } from 'svelte/transition' import { instance } from '../store' + import VersionPicker from './VersionPicker.svelte' $: ({ id, maintenance, version } = $instance) // Create a copy of the version - let instanceVersion = version + let selectedVersion = version $: { - instanceVersion = version + selectedVersion = version } // Controls the disabled state of the button @@ -29,14 +30,18 @@ // Prompt the user to confirm the version change const confirmVersionChange = confirm( - `Are you sure you want to change the version to ${instanceVersion}?`, + `Are you sure you want to change the version to ${selectedVersion}?`, ) // If they select yes, then update the version in pocketbase if (confirmVersionChange) { // Save to the database + errorMessage = '' client() - .saveVersion({ instanceId: id, version: instanceVersion }) + .updateInstance({ + instanceId: id, + fields: { version: selectedVersion }, + }) .then(() => { return 'saved' }) @@ -45,7 +50,7 @@ }) } else { // If they hit cancel, reset the version number back to what it was initially - instanceVersion = version + selectedVersion = version } // Set the button back to normal @@ -79,12 +84,8 @@ class="flex change-version-form-container-query gap-4" on:submit={handleSave} > - + +