MCPcopy Create free account
hub / github.com/0xUnixIO/pulse / handleUserGroupRoutes

Method handleUserGroupRoutes

internal/serverapi/usergroup.go:91–123  ·  view source on GitHub ↗

handleUserGroupRoutes 处理 /v1/user-groups/ 下的子路由。

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

Source from the content-addressed store, hash-verified

89
90// handleUserGroupRoutes 处理 /v1/user-groups/ 下的子路由。
91func (a *userGroupAPI) handleUserGroupRoutes(w http.ResponseWriter, r *http.Request) {
92 path := strings.TrimPrefix(r.URL.Path, "/v1/user-groups/")
93 if path == "" {
94 writeJSON(w, http.StatusNotFound, map[string]any{"error": "group id is required"})
95 return
96 }
97
98 // 解析路径:{id} 或 {id}/members 或 {id}/members/{uid} 或 {id}/sync
99 parts := strings.SplitN(path, "/", 3)
100 groupID := parts[0]
101
102 if len(parts) == 1 {
103 // /v1/user-groups/{id}
104 a.handleUserGroupByID(w, r, groupID)
105 return
106 }
107
108 switch parts[1] {
109 case "members":
110 if len(parts) == 2 || parts[2] == "" {
111 // /v1/user-groups/{id}/members
112 a.handleGroupMembers(w, r, groupID)
113 } else {
114 // /v1/user-groups/{id}/members/{uid}
115 a.handleGroupMemberByUID(w, r, groupID, parts[2])
116 }
117 case "sync":
118 // /v1/user-groups/{id}/sync
119 a.handleGroupSync(w, r, groupID)
120 default:
121 writeJSON(w, http.StatusNotFound, map[string]any{"error": "not found"})
122 }
123}
124
125// handleUserGroupByID 处理单个用户组的 PUT 和 DELETE 请求。
126func (a *userGroupAPI) handleUserGroupByID(w http.ResponseWriter, r *http.Request, id string) {

Callers

nothing calls this directly

Calls 5

handleUserGroupByIDMethod · 0.95
handleGroupMembersMethod · 0.95
handleGroupSyncMethod · 0.95
writeJSONFunction · 0.70

Tested by

no test coverage detected