1
0
mirror of https://github.com/pocketbase/pocketbase.git synced 2025-02-07 19:40:31 +02:00
pocketbase/models/request_info.go

42 lines
1.0 KiB
Go
Raw Normal View History

package models
2023-01-07 22:25:56 +02:00
import (
"strings"
"github.com/pocketbase/pocketbase/models/schema"
)
2024-02-17 15:01:09 +02:00
const (
RequestInfoContextDefault = "default"
RequestInfoContextRealtime = "realtime"
RequestInfoContextProtectedFile = "protectedFile"
RequestInfoContextOAuth2 = "oauth2"
)
// RequestInfo defines a HTTP request data struct, usually used
// as part of the `@request.*` filter resolver.
type RequestInfo struct {
2024-02-17 15:01:09 +02:00
Context string `json:"context"`
Query map[string]any `json:"query"`
Data map[string]any `json:"data"`
Headers map[string]any `json:"headers"`
AuthRecord *Record `json:"authRecord"`
Admin *Admin `json:"admin"`
Method string `json:"method"`
}
2023-01-07 22:25:56 +02:00
// HasModifierDataKeys loosely checks if the current struct has any modifier Data keys.
func (r *RequestInfo) HasModifierDataKeys() bool {
2023-01-07 22:25:56 +02:00
allModifiers := schema.FieldValueModifiers()
for key := range r.Data {
for _, m := range allModifiers {
if strings.HasSuffix(key, m) {
return true
}
}
}
return false
}