DeleteWorkspace soft-deletes a workspace by setting deleted = TRUE.
(ctx context.Context, resourceID string)
| 232 | |
| 233 | // DeleteWorkspace soft-deletes a workspace by setting deleted = TRUE. |
| 234 | func (s *Store) DeleteWorkspace(ctx context.Context, resourceID string) error { |
| 235 | q := qb.Q().Space("UPDATE workspace SET deleted = TRUE WHERE resource_id = ? AND deleted = FALSE", resourceID) |
| 236 | query, args, err := q.ToSQL() |
| 237 | if err != nil { |
| 238 | return errors.Wrapf(err, "failed to build sql") |
| 239 | } |
| 240 | result, err := s.GetDB().ExecContext(ctx, query, args...) |
| 241 | if err != nil { |
| 242 | return errors.Wrapf(err, "failed to delete workspace") |
| 243 | } |
| 244 | rows, err := result.RowsAffected() |
| 245 | if err != nil { |
| 246 | return errors.Wrapf(err, "failed to get rows affected") |
| 247 | } |
| 248 | if rows == 0 { |
| 249 | return errors.Errorf("workspace %q not found or already deleted", resourceID) |
| 250 | } |
| 251 | return nil |
| 252 | } |
| 253 | |
| 254 | // FindWorkspaceMessage is the message for finding workspaces. |
| 255 | type FindWorkspaceMessage struct { |