queries
This commit is contained in:
parent
6395b3ee58
commit
60c1362371
37
core/http/queries.go
Normal file
37
core/http/queries.go
Normal file
|
@ -0,0 +1,37 @@
|
|||
package http
|
||||
|
||||
import "net/http"
|
||||
|
||||
// QueryToLua converts HTTP query parameters to a map that can be used with LuaJIT.
|
||||
// Single value parameters are stored as strings.
|
||||
// Multi-value parameters are converted to []any arrays.
|
||||
func QueryToLua(r *http.Request) map[string]any {
|
||||
if r == nil || r.URL == nil {
|
||||
return nil
|
||||
}
|
||||
|
||||
query := r.URL.Query()
|
||||
if len(query) == 0 {
|
||||
return nil // Avoid allocation for empty queries
|
||||
}
|
||||
|
||||
result := make(map[string]any, len(query))
|
||||
for key, values := range query {
|
||||
switch len(values) {
|
||||
case 0:
|
||||
// Skip empty values
|
||||
case 1:
|
||||
// Single value
|
||||
result[key] = values[0]
|
||||
default:
|
||||
// Multiple values - convert to []any
|
||||
arr := make([]any, len(values))
|
||||
for i, v := range values {
|
||||
arr[i] = v
|
||||
}
|
||||
result[key] = arr
|
||||
}
|
||||
}
|
||||
|
||||
return result
|
||||
}
|
Loading…
Reference in New Issue
Block a user