@Summary Get provisioner state for workspace build @ID get-provisioner-state-for-workspace-build @Security CoderSessionToken @Produce json @Tags Builds @Param workspacebuild path string true "Workspace build ID" @Success 200 {object} codersdk.WorkspaceBuild @Router /api/v2/workspacebuilds/{workspace
(rw http.ResponseWriter, r *http.Request)
| 869 | // @Success 200 {object} codersdk.WorkspaceBuild |
| 870 | // @Router /api/v2/workspacebuilds/{workspacebuild}/state [get] |
| 871 | func (api *API) workspaceBuildState(rw http.ResponseWriter, r *http.Request) { |
| 872 | ctx := r.Context() |
| 873 | workspaceBuild := httpmw.WorkspaceBuildParam(r) |
| 874 | |
| 875 | // The dbauthz layer enforces policy.ActionUpdate on the template. |
| 876 | row, err := api.Database.GetWorkspaceBuildProvisionerStateByID(ctx, workspaceBuild.ID) |
| 877 | if httpapi.Is404Error(err) { |
| 878 | httpapi.ResourceNotFound(rw) |
| 879 | return |
| 880 | } |
| 881 | if err != nil { |
| 882 | httpapi.Write(ctx, rw, http.StatusInternalServerError, codersdk.Response{ |
| 883 | Message: "Internal error fetching provisioner state.", |
| 884 | Detail: err.Error(), |
| 885 | }) |
| 886 | return |
| 887 | } |
| 888 | |
| 889 | rw.Header().Set("Content-Type", "application/json") |
| 890 | rw.WriteHeader(http.StatusOK) |
| 891 | _, _ = rw.Write(row.ProvisionerState) |
| 892 | } |
| 893 | |
| 894 | // @Summary Update workspace build state |
| 895 | // @ID update-workspace-build-state |
nothing calls this directly
no test coverage detected