summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Fred K. Schott <fkschott@gmail.com> 2024-03-11 12:32:20 -0700
committerGravatar GitHub <noreply@github.com> 2024-03-11 12:32:20 -0700
commit8a23ee530cd1d7d7b4e93e9e72f4e06d1fc3d845 (patch)
treeb03ab96233c5ca51f48f942b5d5ea07f322f7bd3
parentd461eb760dd75c50c8e6b67af2683925862f1ec5 (diff)
downloadastro-8a23ee530cd1d7d7b4e93e9e72f4e06d1fc3d845.tar.gz
astro-8a23ee530cd1d7d7b4e93e9e72f4e06d1fc3d845.tar.zst
astro-8a23ee530cd1d7d7b4e93e9e72f4e06d1fc3d845.zip
add handling for success=false responses (#10387)
-rw-r--r--.changeset/soft-foxes-grin.md5
-rw-r--r--packages/db/src/core/cli/commands/push/index.ts15
-rw-r--r--packages/db/src/core/cli/migration-queries.ts14
3 files changed, 32 insertions, 2 deletions
diff --git a/.changeset/soft-foxes-grin.md b/.changeset/soft-foxes-grin.md
new file mode 100644
index 000000000..d3992e19b
--- /dev/null
+++ b/.changeset/soft-foxes-grin.md
@@ -0,0 +1,5 @@
+---
+"@astrojs/db": patch
+---
+
+handle success=false response on api endpoints
diff --git a/packages/db/src/core/cli/commands/push/index.ts b/packages/db/src/core/cli/commands/push/index.ts
index 990ca05b9..738eb877f 100644
--- a/packages/db/src/core/cli/commands/push/index.ts
+++ b/packages/db/src/core/cli/commands/push/index.ts
@@ -82,11 +82,24 @@ async function pushSchema({
return new Response(null, { status: 200 });
}
const url = new URL('/db/push', getRemoteDatabaseUrl());
- return await fetch(url, {
+ const response = await fetch(url, {
method: 'POST',
headers: new Headers({
Authorization: `Bearer ${appToken}`,
}),
body: JSON.stringify(requestBody),
});
+ if (!response.ok) {
+ console.error(`${url.toString()} failed: ${response.status} ${response.statusText}`);
+ console.error(await response.text());
+ throw new Error(`/db/push fetch failed: ${response.status} ${response.statusText}`);
+ }
+ const result = (await response.json()) as
+ | { success: false; }
+ | { success: true; };
+ if (!result.success) {
+ console.error(`${url.toString()} unsuccessful`);
+ console.error(await response.text());
+ throw new Error(`/db/push fetch unsuccessful`);
+ }
}
diff --git a/packages/db/src/core/cli/migration-queries.ts b/packages/db/src/core/cli/migration-queries.ts
index 1cd9345ac..3ff80d009 100644
--- a/packages/db/src/core/cli/migration-queries.ts
+++ b/packages/db/src/core/cli/migration-queries.ts
@@ -432,7 +432,19 @@ export async function getProductionCurrentSnapshot({
Authorization: `Bearer ${appToken}`,
}),
});
- const result = await response.json();
+ if (!response.ok) {
+ console.error(`${url.toString()} failed: ${response.status} ${response.statusText}`);
+ console.error(await response.text());
+ throw new Error(`/db/schema fetch failed: ${response.status} ${response.statusText}`);
+ }
+ const result = (await response.json()) as
+ | { success: false; data: undefined }
+ | { success: true; data: DBSnapshot };
+ if (!result.success) {
+ console.error(`${url.toString()} unsuccessful`);
+ console.error(await response.text());
+ throw new Error(`/db/schema fetch unsuccessful`);
+ }
return result.data;
}