| 328 | } |
| 329 | |
| 330 | func fetchWorkspace(ctx context.Context, deps Deps, workspaceID string) (FetchResult, error) { |
| 331 | parsedID, err := uuid.Parse(workspaceID) |
| 332 | if err != nil { |
| 333 | return FetchResult{}, xerrors.Errorf("invalid workspace ID, must be a valid UUID: %w", err) |
| 334 | } |
| 335 | workspace, err := deps.coderClient.Workspace(ctx, parsedID) |
| 336 | if err != nil { |
| 337 | return FetchResult{}, err |
| 338 | } |
| 339 | workspaceJSON, err := json.Marshal(workspace) |
| 340 | if err != nil { |
| 341 | return FetchResult{}, xerrors.Errorf("failed to marshal workspace: %w", err) |
| 342 | } |
| 343 | return FetchResult{ |
| 344 | ID: workspace.ID.String(), |
| 345 | Title: workspace.Name, |
| 346 | Text: string(workspaceJSON), |
| 347 | URL: fmt.Sprintf("%s/%s/%s", deps.ServerURL(), workspace.OwnerName, workspace.Name), |
| 348 | }, nil |
| 349 | } |
| 350 | |
| 351 | func fetchTemplate(ctx context.Context, deps Deps, templateID string) (FetchResult, error) { |
| 352 | parsedID, err := uuid.Parse(templateID) |