Add safe guards

This commit is contained in:
allegroai 2019-12-14 23:53:09 +02:00
parent 9debe1adcd
commit 38284eef1f
3 changed files with 14 additions and 3 deletions

View File

@ -78,6 +78,9 @@ class DictField(fields.BaseField):
if not self.value_types:
return
if not value:
return
for item in value.values():
self.validate_single_value(item)

View File

@ -1,5 +1,6 @@
from enum import Enum
from typing import Callable, Sequence, Text
from boltons.iterutils import remap
from jsonmodels import models
from jsonmodels.errors import FieldNotSupported
@ -87,7 +88,14 @@ class Endpoint(object):
Provided data_model schema if available
"""
try:
return data_model.to_json_schema()
res = data_model.to_json_schema()
def visit(path, key, value):
if isinstance(value, Enum):
value = str(value)
return key, value
return remap(res, visit=visit)
except (FieldNotSupported, TypeError):
return str(data_model.__name__)

View File

@ -211,7 +211,7 @@ def vector_metrics_iter_histogram(call, company_id, req_model):
@endpoint("events.get_task_events", required_fields=["task"])
def get_task_events(call, company_id, _):
task_id = call.data["task"]
batch_size = call.data.get("batch_size")
batch_size = call.data.get("batch_size", 500)
event_type = call.data.get("event_type")
scroll_id = call.data.get("scroll_id")
order = call.data.get("order") or "asc"