mirror of
https://github.com/0ceanSlim/grain.git
synced 2024-11-24 01:17:13 +00:00
reject by timestamp using string
This commit is contained in:
parent
e6188796d2
commit
158f284be9
@ -16,6 +16,7 @@ server:
|
||||
|
||||
event_time_constraints:
|
||||
min_created_at: 1577836800 # January 1, 2020, as Unix timestamp
|
||||
# min_created_at_string: now-5m # Custom value to indicate 5 minutes in the past
|
||||
# max_created_at: 0 # Set to 0 to use the default behavior of 'now'
|
||||
max_created_at_string: now+5m # Use a string to set a date for max created at in the future or past from current time
|
||||
|
||||
|
@ -2,6 +2,7 @@ package config
|
||||
|
||||
type EventTimeConstraints struct {
|
||||
MinCreatedAt int64 `yaml:"min_created_at"` // Minimum allowed timestamp
|
||||
MinCreatedAtString string `yaml:"min_created_at_string"` // Original string value for parsing (e.g., "now-5m")
|
||||
MaxCreatedAt int64 `yaml:"max_created_at"` // Maximum allowed timestamp
|
||||
MaxCreatedAtString string `yaml:"max_created_at_string"` // Original string value for parsing (e.g., "now+5m")
|
||||
}
|
||||
|
@ -11,14 +11,23 @@ import (
|
||||
func AdjustEventTimeConstraints(cfg *config.ServerConfig) {
|
||||
now := time.Now()
|
||||
|
||||
// Adjust min_created_at (no changes needed if it's already set in the config)
|
||||
if cfg.EventTimeConstraints.MinCreatedAt == 0 {
|
||||
// Adjust min_created_at based on string value or default to January 1, 2020
|
||||
if strings.HasPrefix(cfg.EventTimeConstraints.MinCreatedAtString, "now") {
|
||||
offset := strings.TrimPrefix(cfg.EventTimeConstraints.MinCreatedAtString, "now")
|
||||
duration, err := time.ParseDuration(offset)
|
||||
if err != nil {
|
||||
fmt.Printf("Invalid time offset for min_created_at: %s\n", offset)
|
||||
cfg.EventTimeConstraints.MinCreatedAt = time.Date(2020, 1, 1, 0, 0, 0, 0, time.UTC).Unix()
|
||||
} else {
|
||||
cfg.EventTimeConstraints.MinCreatedAt = now.Add(duration).Unix()
|
||||
}
|
||||
} else if cfg.EventTimeConstraints.MinCreatedAt == 0 {
|
||||
// Default to January 1, 2020, if not set
|
||||
cfg.EventTimeConstraints.MinCreatedAt = time.Date(2020, 1, 1, 0, 0, 0, 0, time.UTC).Unix()
|
||||
}
|
||||
|
||||
// Adjust max_created_at
|
||||
// Adjust max_created_at based on string value or default to current time
|
||||
if strings.HasPrefix(cfg.EventTimeConstraints.MaxCreatedAtString, "now") {
|
||||
// Extract the offset (e.g., "+5m")
|
||||
offset := strings.TrimPrefix(cfg.EventTimeConstraints.MaxCreatedAtString, "now")
|
||||
duration, err := time.ParseDuration(offset)
|
||||
if err != nil {
|
||||
|
Loading…
Reference in New Issue
Block a user