healthchecks/hc/api/forms.py

29 lines
807 B
Python

from datetime import datetime as dt
from django import forms
from django.core.exceptions import ValidationError
import pytz
class TimestampField(forms.Field):
def to_python(self, value):
if value is None:
return None
try:
value_int = int(value)
except ValueError:
raise ValidationError(message="Must be an integer")
# 10000000000 is year 2286 (a sanity check)
if value_int < 0 or value_int > 10000000000:
raise ValidationError(message="Out of bounds")
return dt.fromtimestamp(value_int, pytz.UTC)
class FlipsFiltersForm(forms.Form):
start = TimestampField(required=False)
end = TimestampField(required=False)
seconds = forms.IntegerField(required=False, min_value=0, max_value=31536000)