MCPcopy Index your code
hub / github.com/coder/coder / taskGet

Method taskGet

coderd/aitasks.go:514–578  ·  view source on GitHub ↗

@Summary Get AI task by ID or name @ID get-ai-task-by-id-or-name @Security CoderSessionToken @Produce json @Tags Tasks @Param user path string true "Username, user ID, or 'me' for the authenticated user" @Param task path string true "Task ID, or task name" @Success 200 {object} codersdk.Task @Router

(rw http.ResponseWriter, r *http.Request)

Source from the content-addressed store, hash-verified

512// @Success 200 {object} codersdk.Task
513// @Router /api/v2/tasks/{user}/{task} [get]
514func (api *API) taskGet(rw http.ResponseWriter, r *http.Request) {
515 ctx := r.Context()
516 apiKey := httpmw.APIKey(r)
517 task := httpmw.TaskParam(r)
518
519 if !task.WorkspaceID.Valid {
520 httpapi.Write(ctx, rw, http.StatusInternalServerError, codersdk.Response{
521 Message: "Internal error fetching task.",
522 Detail: "Task workspace ID is invalid.",
523 })
524 return
525 }
526
527 workspace, err := api.Database.GetWorkspaceByID(ctx, task.WorkspaceID.UUID)
528 if err != nil {
529 if httpapi.Is404Error(err) {
530 httpapi.ResourceNotFound(rw)
531 return
532 }
533 httpapi.Write(ctx, rw, http.StatusInternalServerError, codersdk.Response{
534 Message: "Internal error fetching workspace.",
535 Detail: err.Error(),
536 })
537 return
538 }
539
540 data, err := api.workspaceData(ctx, []database.Workspace{workspace})
541 if err != nil {
542 httpapi.Write(ctx, rw, http.StatusInternalServerError, codersdk.Response{
543 Message: "Internal error fetching workspace resources.",
544 Detail: err.Error(),
545 })
546 return
547 }
548 if len(data.builds) == 0 || len(data.templates) == 0 {
549 httpapi.ResourceNotFound(rw)
550 return
551 }
552
553 appStatus := codersdk.WorkspaceAppStatus{}
554 if len(data.appStatuses) > 0 {
555 appStatus = data.appStatuses[0]
556 }
557
558 ws, err := convertWorkspace(
559 ctx,
560 api.Logger,
561 apiKey.UserID,
562 workspace,
563 data.builds[0],
564 data.templates[0],
565 api.Options.AllowWorkspaceRenames,
566 appStatus,
567 )
568 if err != nil {
569 httpapi.Write(ctx, rw, http.StatusInternalServerError, codersdk.Response{
570 Message: "Internal error converting workspace.",
571 Detail: err.Error(),

Callers

nothing calls this directly

Calls 11

workspaceDataMethod · 0.95
APIKeyFunction · 0.92
TaskParamFunction · 0.92
WriteFunction · 0.92
Is404ErrorFunction · 0.92
ResourceNotFoundFunction · 0.92
convertWorkspaceFunction · 0.85
ContextMethod · 0.65
GetWorkspaceByIDMethod · 0.65
ErrorMethod · 0.45

Tested by

no test coverage detected