DeleteWorkspace unregisters a workspace.
(c *gin.Context)
| 219 | |
| 220 | // DeleteWorkspace unregisters a workspace. |
| 221 | func (h *BaseHandlers) DeleteWorkspace(c *gin.Context) { |
| 222 | workspace, err := h.Workspaces.Get(c.Request.Context(), workspaceRefFromRoute(c)) |
| 223 | if err != nil { |
| 224 | h.respondError(c, StatusForWorkspaceError(err), err) |
| 225 | return |
| 226 | } |
| 227 | |
| 228 | stoppedSessionIDs, err := h.stoppedWorkspaceSessionIDs(c.Request.Context(), workspace.ID) |
| 229 | if err != nil { |
| 230 | h.respondError(c, StatusForWorkspaceError(err), err) |
| 231 | return |
| 232 | } |
| 233 | |
| 234 | if err := h.Workspaces.Unregister(c.Request.Context(), workspace.ID); err != nil { |
| 235 | h.respondError(c, StatusForWorkspaceError(err), err) |
| 236 | return |
| 237 | } |
| 238 | |
| 239 | if err := h.deleteStoppedWorkspaceSessions(c.Request.Context(), workspace.ID, stoppedSessionIDs); err != nil { |
| 240 | h.respondError(c, StatusForWorkspaceError(err), err) |
| 241 | return |
| 242 | } |
| 243 | |
| 244 | c.Status(http.StatusNoContent) |
| 245 | } |
| 246 | |
| 247 | func (h *BaseHandlers) stoppedWorkspaceSessionIDs(ctx context.Context, workspaceID string) ([]string, error) { |
| 248 | if h.Sessions == nil { |
nothing calls this directly
no test coverage detected