MCPcopy
hub / github.com/benbjohnson/wtf / handleDialMembershipUpdate

Method handleDialMembershipUpdate

http/dial_membership.go:104–135  ·  view source on GitHub ↗

handleDialMembershipUpdate handles the "PATCH /dial-memberships/:id" route. This route is only called via JSON API on the dial view page.

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

Source from the content-addressed store, hash-verified

102// handleDialMembershipUpdate handles the "PATCH /dial-memberships/:id" route.
103// This route is only called via JSON API on the dial view page.
104func (s *Server) handleDialMembershipUpdate(w http.ResponseWriter, r *http.Request) {
105 // Parse membership ID from URL path.
106 id, err := strconv.Atoi(mux.Vars(r)["id"])
107 if err != nil {
108 Error(w, r, wtf.Errorf(wtf.EINVALID, "Invalid ID format"))
109 return
110 }
111
112 // Force application/json output.
113 r.Header.Set("Accept", "application/json")
114
115 // Parse update object from JSON request body.
116 var upd wtf.DialMembershipUpdate
117 if err := json.NewDecoder(r.Body).Decode(&upd); err != nil {
118 Error(w, r, wtf.Errorf(wtf.EINVALID, "Invalid JSON body"))
119 return
120 }
121
122 // Update membership.
123 membership, err := s.DialMembershipService.UpdateDialMembership(r.Context(), id, upd)
124 if err != nil {
125 Error(w, r, err)
126 return
127 }
128
129 // Write new membership state back as JSON response.
130 w.Header().Set("Content-type", "application/json")
131 if err := json.NewEncoder(w).Encode(membership); err != nil {
132 LogError(r, err)
133 return
134 }
135}
136
137// handleDialMembershipDelete handles the "DELETE /dial-memberships/:id" route.
138// This route deletes the given membership and redirects the user.

Callers

nothing calls this directly

Calls 4

ErrorfFunction · 0.92
LogErrorFunction · 0.85
ErrorFunction · 0.70
UpdateDialMembershipMethod · 0.65

Tested by

no test coverage detected