1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- from typing import Optional
- from ninja import Field, ModelSchema
- from glitchtip.api.schema import CamelSchema
- from .models import IssueEvent
- class IssueEventSchema(CamelSchema, ModelSchema):
- id: str = Field(validation_alias="id.hex")
- event_id: str
- project_id: int = Field(validation_alias="issue.project_id")
- group_id: int = Field(validation_alias="issue_id")
- dist: Optional[str] = None
- message: Optional[str] = Field(validation_alias="data.message", default=None)
- culprit: Optional[str] = Field(validation_alias="data.culprit", default=None)
- title: Optional[str] = Field(validation_alias="data.title", default=None)
- platform: Optional[str] = Field(validation_alias="data.platform", default=None)
- type: str = Field(validation_alias="get_type_display")
- metadata: dict[str, str] = Field(
- validation_alias="data.metadata", default_factory=dict
- )
- tags: list[dict[str, Optional[str]]] = []
- class Config:
- model = IssueEvent
- model_fields = ["id", "type", "date_created", "date_received"]
- populate_by_name = True
- class IssueEventDetailSchema(IssueEventSchema):
- user_report: list = [] # TODO
- next_event_id: Optional[str] = None
- previous_event_id: Optional[str] = None
- @staticmethod
- def resolve_previous_event_id(obj):
- if event_id := obj.previous:
- return event_id.hex
- @staticmethod
- def resolve_next_event_id(obj):
- if event_id := obj.next:
- return event_id.hex
|