refactor routes,
tronnet/workflows: Static Analysis -- Golang / static-go (push) Successful in 30s

use json encoding for route body parameters,
implement modify user/group/pool operations,
simplify schema by using comon lib struct tags and RequireAll and AtLeastOne helper functions,
properly implement locadb as Backend interface
This commit is contained in:
alu
2026-08-21 20:49:15 +00:00
parent 670f7d4999
commit 4783d79523
13 changed files with 959 additions and 606 deletions
+55
View File
@@ -0,0 +1,55 @@
package app
import (
"reflect"
)
// RequireAll ensures that EVERY non-excluded exported field in the struct is non-zero.
func RequireAll(v any, excludes ...string) bool {
val := reflect.ValueOf(v)
if val.Kind() == reflect.Pointer {
val = val.Elem()
}
typ := val.Type()
excludeMap := make(map[string]bool)
for _, ex := range excludes {
excludeMap[ex] = true
}
for i := 0; i < val.NumField(); i++ {
fieldName := typ.Field(i).Name
if excludeMap[fieldName] {
continue
}
if val.Field(i).IsZero() {
return false
}
}
return true
}
// AtLeastOne ensures that AT LEAST ONE non-excluded exported field is non-zero.
func AtLeastOne(v any, excludes ...string) bool {
val := reflect.ValueOf(v)
if val.Kind() == reflect.Pointer {
val = val.Elem()
}
typ := val.Type()
excludeMap := make(map[string]bool)
for _, ex := range excludes {
excludeMap[ex] = true
}
for i := 0; i < val.NumField(); i++ {
fieldName := typ.Field(i).Name
if excludeMap[fieldName] {
continue
}
if !val.Field(i).IsZero() {
return true
}
}
return false
}