fix: make bulk observation rejection atomic
This commit is contained in:
@@ -61,13 +61,16 @@ def suggest_aliases(session: Session, observation: ExternalObservation) -> tuple
|
||||
return (fish_alias.fish if fish_alias else None, waterbody_alias.waterbody if waterbody_alias else None)
|
||||
|
||||
|
||||
def reject_observation(session: Session, observation: ExternalObservation, *, reason: str) -> ExternalObservation:
|
||||
def reject_observation(
|
||||
session: Session, observation: ExternalObservation, *, reason: str, commit: bool = True,
|
||||
) -> ExternalObservation:
|
||||
if observation.status == "published":
|
||||
raise ExternalReviewError("published observation cannot be rejected")
|
||||
observation.status = "rejected"
|
||||
observation.review_note = reason
|
||||
observation.reviewed_at = datetime.now(timezone.utc)
|
||||
session.commit()
|
||||
if commit:
|
||||
session.commit()
|
||||
return observation
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user