Skip to content

Commit

Permalink
add force option to delete saved objects when deleting workspace
Browse files Browse the repository at this point in the history
Signed-off-by: Hailong Cui <ihailong@amazon.com>
  • Loading branch information
Hailong-am committed Aug 15, 2023
1 parent 80d1fe9 commit 888c920
Show file tree
Hide file tree
Showing 3 changed files with 15 additions and 4 deletions.
7 changes: 6 additions & 1 deletion src/plugins/workspace/server/routes/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -225,18 +225,23 @@ export function registerRoutes({
params: schema.object({
id: schema.string(),
}),
query: schema.object({
force: schema.maybe(schema.boolean({ defaultValue: false })),
}),
},
},
router.handleLegacyErrors(async (context, req, res) => {
const { id } = req.params;
const force = req.query.force;

const result = await client.delete(
{
context,
request: req,
logger,
},
id
id,
force
);
return res.ok({ body: result });
})
Expand Down
2 changes: 1 addition & 1 deletion src/plugins/workspace/server/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ export interface IWorkspaceDBImpl {
id: string,
payload: Omit<WorkspaceAttributeWithPermission, 'id'>
): Promise<IResponse<boolean>>;
delete(requestDetail: IRequestDetail, id: string): Promise<IResponse<boolean>>;
delete(requestDetail: IRequestDetail, id: string, force?: boolean): Promise<IResponse<boolean>>;
destroy(): Promise<IResponse<boolean>>;
}

Expand Down
10 changes: 8 additions & 2 deletions src/plugins/workspace/server/workspace_client.ts
Original file line number Diff line number Diff line change
Expand Up @@ -137,11 +137,17 @@ export class WorkspaceClientWithSavedObject implements IWorkspaceDBImpl {
};
}
}
public async delete(requestDetail: IRequestDetail, id: string): Promise<IResponse<boolean>> {
public async delete(
requestDetail: IRequestDetail,
id: string,
force?: boolean
): Promise<IResponse<boolean>> {
try {
const savedObjectClient = this.getSavedObjectClientsFromRequestDetail(requestDetail);
await savedObjectClient.delete(WORKSPACE_TYPE, id);
await savedObjectClient.deleteByWorkspace(id);
if (force) {
await savedObjectClient.deleteByWorkspace(id);
}
return {
success: true,
result: true,
Expand Down

0 comments on commit 888c920

Please sign in to comment.