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

Method handleNodeRoutes

internal/serverapi/api.go:205–271  ·  view source on GitHub ↗
(w http.ResponseWriter, r *http.Request)

Source from the content-addressed store, hash-verified

203}
204
205func (a *API) handleNodeRoutes(w http.ResponseWriter, r *http.Request) {
206 path := strings.TrimPrefix(r.URL.Path, "/v1/nodes/")
207 parts := strings.Split(path, "/")
208 if len(parts) == 0 || parts[0] == "" {
209 writeJSON(w, http.StatusNotFound, map[string]any{"error": "node id is required"})
210 return
211 }
212
213 nodeID := parts[0]
214 if len(parts) == 1 {
215 a.handleNode(w, r, nodeID)
216 return
217 }
218
219 // DELETE /v1/nodes/{nodeID}/traceroute/results/{snapshotID}
220 if len(parts) == 4 && parts[1] == "traceroute" && parts[2] == "results" {
221 a.handleTracerouteResultDelete(w, r, parts[3])
222 return
223 }
224
225 switch strings.Join(parts[1:], "/") {
226 case "runtime":
227 a.handleNodeRuntime(w, r, nodeID)
228 case "runtime/status":
229 a.handleNodeStatus(w, r, nodeID)
230 case "runtime/usage":
231 a.handleNodeUsage(w, r, nodeID)
232 case "runtime/config":
233 a.handleNodeConfig(w, r, nodeID)
234 case "runtime/logs":
235 a.handleNodeLogs(w, r, nodeID)
236 case "runtime/logs/stream":
237 a.handleNodeLogsStream(w, r, nodeID)
238 case "runtime/start":
239 a.handleNodeStart(w, r, nodeID)
240 case "runtime/stop":
241 a.handleNodeStop(w, r, nodeID)
242 case "runtime/restart":
243 a.handleNodeRestart(w, r, nodeID)
244 case "runtime/apply":
245 a.handleNodeApply(w, r, nodeID)
246 case "runtime/metrics":
247 a.handleNodeMetrics(w, r, nodeID)
248 case "runtime/speedtest":
249 a.handleNodeSpeedTest(w, r, nodeID)
250 case "runtime/check":
251 a.handleNodeCheck(w, r, nodeID)
252 case "runtime/traceroute":
253 a.handleNodeTraceroute(w, r, nodeID)
254 case "traceroute/results":
255 a.handleNodeTracerouteResults(w, r, nodeID)
256 case "update":
257 a.handleNodeUpdate(w, r, nodeID)
258 case "sniproxy/sync":
259 a.handleNodeSNIProxySync(w, r, nodeID)
260 case "sniproxy/status":
261 a.handleNodeSNIProxyStatus(w, r, nodeID)
262 case "traffic":

Callers

nothing calls this directly

Calls 15

handleNodeMethod · 0.95
handleNodeRuntimeMethod · 0.95
handleNodeStatusMethod · 0.95
handleNodeUsageMethod · 0.95
handleNodeConfigMethod · 0.95
handleNodeLogsMethod · 0.95
handleNodeLogsStreamMethod · 0.95
handleNodeStartMethod · 0.95
handleNodeStopMethod · 0.95
handleNodeRestartMethod · 0.95
handleNodeApplyMethod · 0.95

Tested by

no test coverage detected