mirror of
https://github.com/MHSanaei/3x-ui.git
synced 2026-07-13 08:06:06 +00:00
fix(api): preserve 64-bit integer schema formats (#5908)
Co-authored-by: sanmaxdev <sanmaxdev@users.noreply.github.com>
This commit is contained in:
committed by
GitHub
parent
814cda3fb4
commit
2c95e29297
@@ -97,7 +97,11 @@ func (g *schemaGen) typeSchema(t TypeRef) map[string]any {
|
||||
}
|
||||
return map[string]any{"type": "string"}
|
||||
case KindInt:
|
||||
return map[string]any{"type": "integer"}
|
||||
sch := map[string]any{"type": "integer"}
|
||||
if t.Name == "int64" {
|
||||
sch["format"] = "int64"
|
||||
}
|
||||
return sch
|
||||
case KindNumber:
|
||||
return map[string]any{"type": "number"}
|
||||
case KindBool:
|
||||
|
||||
@@ -0,0 +1,30 @@
|
||||
package main
|
||||
|
||||
import "testing"
|
||||
|
||||
func TestIntegerSchemaFormats(t *testing.T) {
|
||||
tests := []struct {
|
||||
name string
|
||||
goType string
|
||||
wantFormat string
|
||||
}{
|
||||
{name: "int", goType: "int"},
|
||||
{name: "int32", goType: "int32"},
|
||||
{name: "int64", goType: "int64", wantFormat: "int64"},
|
||||
{name: "uint64", goType: "uint64", wantFormat: "int64"},
|
||||
}
|
||||
|
||||
gen := &schemaGen{}
|
||||
for _, tt := range tests {
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
schema := gen.typeSchema(identType(tt.goType))
|
||||
if got := schema["type"]; got != "integer" {
|
||||
t.Fatalf("type = %v, want integer", got)
|
||||
}
|
||||
got, _ := schema["format"].(string)
|
||||
if got != tt.wantFormat {
|
||||
t.Fatalf("format = %q, want %q", got, tt.wantFormat)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
@@ -197,8 +197,10 @@ func identType(name string) TypeRef {
|
||||
return TypeRef{Kind: KindString}
|
||||
case "bool":
|
||||
return TypeRef{Kind: KindBool}
|
||||
case "int", "int8", "int16", "int32", "int64",
|
||||
"uint", "uint8", "uint16", "uint32", "uint64":
|
||||
case "int64", "uint64":
|
||||
return TypeRef{Kind: KindInt, Name: "int64"}
|
||||
case "int", "int8", "int16", "int32",
|
||||
"uint", "uint8", "uint16", "uint32":
|
||||
return TypeRef{Kind: KindInt}
|
||||
case "float32", "float64":
|
||||
return TypeRef{Kind: KindNumber}
|
||||
|
||||
Reference in New Issue
Block a user