mirror of
https://github.com/steveiliop56/tinyauth.git
synced 2025-10-28 04:35:40 +00:00
refactor: handle oauth groups response as an any array of any
This commit is contained in:
@@ -330,12 +330,21 @@ func DeriveKey(secret string, info string) (string, error) {
|
||||
|
||||
func CoalesceToString(value any) string {
|
||||
switch v := value.(type) {
|
||||
case []string:
|
||||
return strings.Join(v, ",")
|
||||
case []any:
|
||||
log.Debug().Msg("Coalescing []any to string")
|
||||
strs := make([]string, 0, len(v))
|
||||
for _, item := range v {
|
||||
if str, ok := item.(string); ok {
|
||||
strs = append(strs, str)
|
||||
continue
|
||||
}
|
||||
log.Warn().Interface("item", item).Msg("Item in []any is not a string, skipping")
|
||||
}
|
||||
return strings.Join(strs, ",")
|
||||
case string:
|
||||
return v
|
||||
default:
|
||||
log.Warn().Interface("value", value).Msg("Unsupported type, returning empty string")
|
||||
log.Warn().Interface("value", value).Interface("type", v).Msg("Unsupported type, returning empty string")
|
||||
return ""
|
||||
}
|
||||
}
|
||||
|
||||
@@ -515,7 +515,7 @@ func TestDeriveKey(t *testing.T) {
|
||||
func TestCoalesceToString(t *testing.T) {
|
||||
t.Log("Testing coalesce to string with a string")
|
||||
|
||||
value := "test"
|
||||
value := any("test")
|
||||
expected := "test"
|
||||
|
||||
result := utils.CoalesceToString(value)
|
||||
@@ -526,10 +526,10 @@ func TestCoalesceToString(t *testing.T) {
|
||||
|
||||
t.Log("Testing coalesce to string with a slice of strings")
|
||||
|
||||
valueSlice := []string{"test1", "test2"}
|
||||
value = []any{any("test1"), any("test2"), any(123)}
|
||||
expected = "test1,test2"
|
||||
|
||||
result = utils.CoalesceToString(valueSlice)
|
||||
result = utils.CoalesceToString(value)
|
||||
|
||||
if result != expected {
|
||||
t.Fatalf("Expected %v, got %v", expected, result)
|
||||
@@ -537,10 +537,10 @@ func TestCoalesceToString(t *testing.T) {
|
||||
|
||||
t.Log("Testing coalesce to string with an unsupported type")
|
||||
|
||||
valueUnsupported := 12345
|
||||
value = 12345
|
||||
expected = ""
|
||||
|
||||
result = utils.CoalesceToString(valueUnsupported)
|
||||
result = utils.CoalesceToString(value)
|
||||
|
||||
if result != expected {
|
||||
t.Fatalf("Expected %v, got %v", expected, result)
|
||||
|
||||
Reference in New Issue
Block a user