Poll Delete Status
Poll the status of a database deletion job using the job ID returned by the delete() method. Database deletion is asynchronous, so use this method to check when the deletion is complete or if it has failed.
Method Signature
client.databases.pollDeleteStatus(jobId: string): Promise<BolticSuccessResponse<DatabaseDeletionStatusResponse> | BolticErrorResponse>
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
jobId | string | ✅ | Job ID returned from the delete() operation |
Return Value
BolticSuccessResponse<DatabaseDeletionStatusResponse>
interface BolticSuccessResponse<DatabaseDeletionStatusResponse> {
data: DatabaseDeletionStatusResponse;
error: null;
}
DatabaseDeletionStatusResponse
The data property contains a DatabaseDeletionStatusResponse with the following structure:
interface DatabaseDeletionStatusResponse {
jobId: string; // Job identifier (UUID)
status: "pending" | "in_progress" | "success" | "failed"; // Job status
message: string; // Status message describing the current state
}
Job Status Values
| Status | Description |
|---|---|
pending | Job is queued and waiting to start |
in_progress | Job is currently being processed |
success | Job completed successfully |
failed | Job failed during execution |
Examples
Basic Status Polling
import { createClient } from "@boltic/sdk";
const client = createClient("your-api-key");
const { data: status, error } = await client.databases.pollDeleteStatus("job-id-here");
if (error) {
console.error("Failed to poll status:", error.message);
} else {
console.log(`Job Status: ${status.status}`);
console.log(`Message: ${status.message}`);
}
Poll with Retry Logic
async function waitForDeletion(jobId: string, maxAttempts = 30, pollInterval = 2000) {
for (let attempt = 0; attempt < maxAttempts; attempt++) {
const { data: status, error } = await client.databases.pollDeleteStatus(jobId);
if (error) {
throw new Error(`Failed to poll status: ${error.message}`);
}
console.log(`Attempt ${attempt + 1}/${maxAttempts}: ${status.status} - ${status.message}`);
if (status.status === "success") {
console.log("✅ Database deletion completed");
return true;
} else if (status.status === "failed") {
throw new Error(`Deletion failed: ${status.message}`);
}
// Wait before next poll
if (attempt < maxAttempts - 1) {
await new Promise((resolve) => setTimeout(resolve, pollInterval));
}
}
throw new Error("Deletion timeout: job did not complete in time");
}
// Usage
try {
const jobId = "your-job-id";
await waitForDeletion(jobId);
console.log("Database successfully deleted");
} catch (error) {
console.error("Error:", error.message);
}