Skip to content

Commit 28b99b1

Browse files
committed
Treat Nones from private proxy like handle error (fixes #523)
1 parent f459077 commit 28b99b1

File tree

1 file changed

+21
-3
lines changed

1 file changed

+21
-3
lines changed

gramps_webapi/api/resources/util.py

Lines changed: 21 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
import os
2727
from hashlib import sha256
2828
from http import HTTPStatus
29-
from typing import Any, cast, Optional, Union, Literal
29+
from typing import Any, Literal, Optional, Union, cast
3030

3131
import gramps
3232
import gramps.gen.lib
@@ -87,15 +87,21 @@
8787
def get_person_by_handle(db_handle: DbReadBase, handle: Handle) -> Union[Person, dict]:
8888
"""Safe get person by handle."""
8989
try:
90-
return db_handle.get_person_from_handle(handle)
90+
person = db_handle.get_person_from_handle(handle)
91+
if person is None:
92+
return {}
93+
return person
9194
except HandleError:
9295
return {}
9396

9497

9598
def get_place_by_handle(db_handle: DbReadBase, handle: Handle) -> Union[Place, dict]:
9699
"""Safe get place by handle."""
97100
try:
98-
return db_handle.get_place_from_handle(handle)
101+
place = db_handle.get_place_from_handle(handle)
102+
if place is None:
103+
return {}
104+
return place
99105
except HandleError:
100106
return {}
101107

@@ -106,6 +112,8 @@ def get_family_by_handle(
106112
"""Get a family and optional extended attributes."""
107113
try:
108114
obj = db_handle.get_family_from_handle(handle)
115+
if obj is None:
116+
return {}
109117
except HandleError:
110118
return {}
111119
args = args or {}
@@ -271,6 +279,8 @@ def get_event_profile_for_handle(
271279
"""Get event profile given a handle."""
272280
try:
273281
obj = db_handle.get_event_from_handle(handle)
282+
if obj is None:
283+
return {}
274284
except HandleError:
275285
return {}
276286
return get_event_profile_for_object(
@@ -496,6 +506,8 @@ def get_person_profile_for_handle(
496506
"""Get person profile given a handle."""
497507
try:
498508
obj = db_handle.get_person_from_handle(handle)
509+
if obj is None:
510+
return {}
499511
except HandleError:
500512
return {}
501513
return get_person_profile_for_object(db_handle, obj, args, locale=locale)
@@ -581,6 +593,8 @@ def get_family_profile_for_handle(
581593
"""Get family profile given a handle."""
582594
try:
583595
obj = db_handle.get_family_from_handle(handle)
596+
if obj is None:
597+
return {}
584598
except HandleError:
585599
return {}
586600
return get_family_profile_for_object(db_handle, obj, args, locale=locale)
@@ -613,6 +627,8 @@ def get_citation_profile_for_handle(
613627
"""Get citation profile given a handle."""
614628
try:
615629
obj = db_handle.get_citation_from_handle(handle)
630+
if obj is None:
631+
return {}
616632
except HandleError:
617633
return {}
618634
return get_citation_profile_for_object(db_handle, obj, args, locale=locale)
@@ -634,6 +650,8 @@ def get_media_profile_for_handle(
634650
"""Get media profile given a handle."""
635651
try:
636652
obj = db_handle.get_media_from_handle(handle)
653+
if obj is None:
654+
return {}
637655
except HandleError:
638656
return {}
639657
return get_media_profile_for_object(db_handle, obj, args, locale=locale)

0 commit comments

Comments
 (0)