@Summary Delete workspace agent port share @ID delete-workspace-agent-port-share @Security CoderSessionToken @Accept json @Tags PortSharing @Param workspace path string true "Workspace ID" format(uuid) @Param request body codersdk.DeleteWorkspaceAgentPortShareRequest true "Delete port sharing level
(rw http.ResponseWriter, r *http.Request)
| 145 | // @Success 200 |
| 146 | // @Router /api/v2/workspaces/{workspace}/port-share [delete] |
| 147 | func (api *API) deleteWorkspaceAgentPortShare(rw http.ResponseWriter, r *http.Request) { |
| 148 | ctx := r.Context() |
| 149 | workspace := httpmw.WorkspaceParam(r) |
| 150 | var req codersdk.DeleteWorkspaceAgentPortShareRequest |
| 151 | if !httpapi.Read(ctx, rw, r, &req) { |
| 152 | return |
| 153 | } |
| 154 | |
| 155 | _, err := api.Database.GetWorkspaceAgentPortShare(ctx, database.GetWorkspaceAgentPortShareParams{ |
| 156 | WorkspaceID: workspace.ID, |
| 157 | AgentName: req.AgentName, |
| 158 | Port: req.Port, |
| 159 | }) |
| 160 | if err != nil { |
| 161 | if errors.Is(err, sql.ErrNoRows) { |
| 162 | httpapi.Write(ctx, rw, http.StatusNotFound, codersdk.Response{ |
| 163 | Message: "Port share not found.", |
| 164 | }) |
| 165 | return |
| 166 | } |
| 167 | |
| 168 | httpapi.InternalServerError(rw, err) |
| 169 | return |
| 170 | } |
| 171 | |
| 172 | err = api.Database.DeleteWorkspaceAgentPortShare(ctx, database.DeleteWorkspaceAgentPortShareParams{ |
| 173 | WorkspaceID: workspace.ID, |
| 174 | AgentName: req.AgentName, |
| 175 | Port: req.Port, |
| 176 | }) |
| 177 | if err != nil { |
| 178 | httpapi.InternalServerError(rw, err) |
| 179 | return |
| 180 | } |
| 181 | |
| 182 | rw.WriteHeader(http.StatusOK) |
| 183 | } |
| 184 | |
| 185 | func convertPortShares(shares []database.WorkspaceAgentPortShare) []codersdk.WorkspaceAgentPortShare { |
| 186 | converted := []codersdk.WorkspaceAgentPortShare{} |
nothing calls this directly
no test coverage detected