A little more refactoring

This commit is contained in:
Jon Staab
2026-04-22 14:45:00 -07:00
parent 53bf913fe6
commit 959d019b54
+14 -22
View File
@@ -84,8 +84,7 @@ func (api *APIHandler) listRelayMembers(w http.ResponseWriter, r *http.Request)
return return
} }
w.WriteHeader(http.StatusOK) writeJSON(w, http.StatusOK, map[string][]string{"members": members})
json.NewEncoder(w).Encode(map[string][]string{"members": members})
} }
func (api *APIHandler) resolveRelayMembers(id string) ([]string, error) { func (api *APIHandler) resolveRelayMembers(id string) ([]string, error) {
@@ -112,13 +111,7 @@ func (api *APIHandler) resolveRelayMembers(id string) ([]string, error) {
Events: events, Events: events,
} }
memberSet := make(map[string]struct{}) return collectMembers(management), nil
for _, pubkey := range management.GetMembers() {
memberSet[pubkey.Hex()] = struct{}{}
}
return sortedMembers(memberSet), nil
} }
func (api *APIHandler) getMembersFromLoadedInstance(id string) ([]string, bool) { func (api *APIHandler) getMembersFromLoadedInstance(id string) ([]string, bool) {
@@ -130,15 +123,14 @@ func (api *APIHandler) getMembersFromLoadedInstance(id string) ([]string, bool)
return nil, false return nil, false
} }
memberSet := make(map[string]struct{}) return collectMembers(instance.Management), true
for _, pubkey := range instance.Management.GetMembers() {
memberSet[pubkey.Hex()] = struct{}{}
}
return sortedMembers(memberSet), true
} }
func sortedMembers(memberSet map[string]struct{}) []string { func collectMembers(management *ManagementStore) []string {
memberSet := make(map[string]struct{})
for _, pubkey := range management.GetMembers() {
memberSet[pubkey.Hex()] = struct{}{}
}
members := Keys(memberSet) members := Keys(memberSet)
sort.Strings(members) sort.Strings(members)
return members return members
@@ -151,9 +143,9 @@ func writeError(w http.ResponseWriter, status int, message string) {
} }
// writeJSON writes a JSON success response // writeJSON writes a JSON success response
func writeJSON(w http.ResponseWriter, status int, data map[string]string) { func writeJSON(w http.ResponseWriter, status int, v any) {
w.WriteHeader(status) w.WriteHeader(status)
json.NewEncoder(w).Encode(data) json.NewEncoder(w).Encode(v)
} }
// scheme returns the URL scheme based on the request // scheme returns the URL scheme based on the request
@@ -261,7 +253,7 @@ func (api *APIHandler) patchRelay(w http.ResponseWriter, r *http.Request) {
} }
// Validate the patched config // Validate the patched config
if err := api.validatePatchedConfig(existing); err != nil { if err := api.validateConfig(existing); err != nil {
writeError(w, http.StatusBadRequest, err.Error()) writeError(w, http.StatusBadRequest, err.Error())
return return
} }
@@ -344,8 +336,8 @@ func deepMerge(base, patch map[string]interface{}) map[string]interface{} {
return result return result
} }
// validatePatchedConfig validates a config after patching // validateConfig validates a config
func (api *APIHandler) validatePatchedConfig(config *Config) error { func (api *APIHandler) validateConfig(config *Config) error {
if config.Host == "" { if config.Host == "" {
return fmt.Errorf("host is required") return fmt.Errorf("host is required")
} }
@@ -432,7 +424,7 @@ func (api *APIHandler) parseAndValidateConfig(r *http.Request) (*Config, error)
return nil, fmt.Errorf("invalid json config: %w", err) return nil, fmt.Errorf("invalid json config: %w", err)
} }
if err := api.validatePatchedConfig(&config); err != nil { if err := api.validateConfig(&config); err != nil {
return nil, err return nil, err
} }