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

Method putFavoriteWorkspace

coderd/workspaces.go:1838–1876  ·  view source on GitHub ↗

@Summary Favorite workspace by ID. @ID favorite-workspace-by-id @Security CoderSessionToken @Tags Workspaces @Param workspace path string true "Workspace ID" format(uuid) @Success 204 @Router /api/v2/workspaces/{workspace}/favorite [put]

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

Source from the content-addressed store, hash-verified

1836// @Success 204
1837// @Router /api/v2/workspaces/{workspace}/favorite [put]
1838func (api *API) putFavoriteWorkspace(rw http.ResponseWriter, r *http.Request) {
1839 var (
1840 ctx = r.Context()
1841 workspace = httpmw.WorkspaceParam(r)
1842 apiKey = httpmw.APIKey(r)
1843 auditor = api.Auditor.Load()
1844 )
1845
1846 if apiKey.UserID != workspace.OwnerID {
1847 httpapi.Write(ctx, rw, http.StatusForbidden, codersdk.Response{
1848 Message: "You can only favorite workspaces that you own.",
1849 })
1850 return
1851 }
1852
1853 aReq, commitAudit := audit.InitRequest[database.WorkspaceTable](rw, &audit.RequestParams{
1854 Audit: *auditor,
1855 Log: api.Logger,
1856 Request: r,
1857 Action: database.AuditActionWrite,
1858 OrganizationID: workspace.OrganizationID,
1859 })
1860 defer commitAudit()
1861 aReq.Old = workspace.WorkspaceTable()
1862
1863 err := api.Database.FavoriteWorkspace(ctx, workspace.ID)
1864 if err != nil {
1865 httpapi.Write(ctx, rw, http.StatusInternalServerError, codersdk.Response{
1866 Message: "Internal error setting workspace as favorite",
1867 Detail: err.Error(),
1868 })
1869 return
1870 }
1871
1872 aReq.New = workspace.WorkspaceTable()
1873 aReq.New.Favorite = true
1874
1875 rw.WriteHeader(http.StatusNoContent)
1876}
1877
1878// @Summary Unfavorite workspace by ID.
1879// @ID unfavorite-workspace-by-id

Callers 2

useBatchActionsFunction · 0.80
toggleFavoriteFunction · 0.80

Calls 10

WorkspaceParamFunction · 0.92
APIKeyFunction · 0.92
WriteFunction · 0.92
InitRequestFunction · 0.92
WorkspaceTableMethod · 0.80
ContextMethod · 0.65
FavoriteWorkspaceMethod · 0.65
LoadMethod · 0.45
ErrorMethod · 0.45
WriteHeaderMethod · 0.45

Tested by

no test coverage detected