Skip to content

Commit b2c20f7

Browse files
authored
fix(service): get_by_name_or_default no longer works if name wasn't found (#6027)
1 parent 0e475e3 commit b2c20f7

File tree

14 files changed

+262
-110
lines changed

14 files changed

+262
-110
lines changed

src/dispatch/case/priority/service.py

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ def get_default_or_raise(*, db_session, project_id: int) -> CasePriority:
4141
"input": None,
4242
"ctx": {"error": ValueError("No default case priority defined.")},
4343
}
44-
]
44+
],
4545
)
4646
return case_priority
4747

@@ -73,9 +73,11 @@ def get_by_name_or_raise(
7373
"loc": ("case_priority",),
7474
"input": case_priority_in.name,
7575
"msg": "Value error, Case priority not found.",
76-
"ctx": {"error": ValueError(f"Case priority not found: {case_priority_in.name}")}
76+
"ctx": {
77+
"error": ValueError(f"Case priority not found: {case_priority_in.name}")
78+
},
7779
}
78-
]
80+
],
7981
)
8082

8183
return case_priority
@@ -85,13 +87,12 @@ def get_by_name_or_default(
8587
*, db_session, project_id: int, case_priority_in=CasePriorityRead
8688
) -> CasePriority:
8789
"""Returns a case priority based on a name or the default if not specified."""
88-
if case_priority_in:
89-
if case_priority_in.name:
90-
return get_by_name_or_raise(
91-
db_session=db_session,
92-
project_id=project_id,
93-
case_priority_in=case_priority_in,
94-
)
90+
if case_priority_in and case_priority_in.name:
91+
case_priority = get_by_name(
92+
db_session=db_session, project_id=project_id, name=case_priority_in.name
93+
)
94+
if case_priority:
95+
return case_priority
9596
return get_default_or_raise(db_session=db_session, project_id=project_id)
9697

9798

src/dispatch/case/severity/service.py

Lines changed: 25 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -32,13 +32,15 @@ def get_default_or_raise(*, db_session, project_id: int) -> CaseSeverity:
3232
case_severity = get_default(db_session=db_session, project_id=project_id)
3333

3434
if not case_severity:
35-
raise ValidationError([
36-
{
37-
"loc": ("case_severity",),
38-
"msg": "No default case severity defined.",
39-
"type": "value_error",
40-
}
41-
])
35+
raise ValidationError(
36+
[
37+
{
38+
"loc": ("case_severity",),
39+
"msg": "No default case severity defined.",
40+
"type": "value_error",
41+
}
42+
]
43+
)
4244
return case_severity
4345

4446

@@ -61,14 +63,16 @@ def get_by_name_or_raise(
6163
)
6264

6365
if not case_severity:
64-
raise ValidationError([
65-
{
66-
"loc": ("case_severity",),
67-
"msg": "Case severity not found.",
68-
"type": "value_error",
69-
"case_severity": case_severity_in.name,
70-
}
71-
])
66+
raise ValidationError(
67+
[
68+
{
69+
"loc": ("case_severity",),
70+
"msg": "Case severity not found.",
71+
"type": "value_error",
72+
"case_severity": case_severity_in.name,
73+
}
74+
]
75+
)
7276

7377
return case_severity
7478

@@ -77,13 +81,12 @@ def get_by_name_or_default(
7781
*, db_session, project_id: int, case_severity_in=CaseSeverityRead
7882
) -> CaseSeverity:
7983
"""Returns a case severity based on a name or the default if not specified."""
80-
if case_severity_in:
81-
if case_severity_in.name:
82-
return get_by_name_or_raise(
83-
db_session=db_session,
84-
project_id=project_id,
85-
case_severity_in=case_severity_in,
86-
)
84+
if case_severity_in and case_severity_in.name:
85+
case_severity = get_by_name(
86+
db_session=db_session, project_id=project_id, name=case_severity_in.name
87+
)
88+
if case_severity:
89+
return case_severity
8790
return get_default_or_raise(db_session=db_session, project_id=project_id)
8891

8992

src/dispatch/case/type/service.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
21
from sqlalchemy.sql.expression import true
32

43
from dispatch.case import service as case_service
@@ -58,11 +57,12 @@ def get_by_name_or_raise(*, db_session, project_id: int, case_type_in=CaseTypeRe
5857

5958
def get_by_name_or_default(*, db_session, project_id: int, case_type_in=CaseTypeRead) -> CaseType:
6059
"""Returns a case type based on a name or the default if not specified."""
61-
if case_type_in:
62-
if case_type_in.name:
63-
return get_by_name_or_raise(
64-
db_session=db_session, project_id=project_id, case_type_in=case_type_in
65-
)
60+
if case_type_in and case_type_in.name:
61+
case_type = get_by_name(
62+
db_session=db_session, project_id=project_id, name=case_type_in.name
63+
)
64+
if case_type:
65+
return case_type
6666
return get_default_or_raise(db_session=db_session, project_id=project_id)
6767

6868

src/dispatch/incident/priority/service.py

Lines changed: 23 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -36,12 +36,14 @@ def get_default_or_raise(*, db_session, project_id: int) -> IncidentPriority:
3636
incident_priority = get_default(db_session=db_session, project_id=project_id)
3737

3838
if not incident_priority:
39-
raise ValidationError([
40-
{
41-
"msg": "No default incident priority defined.",
42-
"loc": "incident_priority",
43-
}
44-
])
39+
raise ValidationError(
40+
[
41+
{
42+
"msg": "No default incident priority defined.",
43+
"loc": "incident_priority",
44+
}
45+
]
46+
)
4547
return incident_priority
4648

4749

@@ -64,13 +66,15 @@ def get_by_name_or_raise(
6466
)
6567

6668
if not incident_priority:
67-
raise ValidationError([
68-
{
69-
"msg": "Incident priority not found.",
70-
"loc": "incident_priority",
71-
"incident_priority": incident_priority_in.name,
72-
}
73-
])
69+
raise ValidationError(
70+
[
71+
{
72+
"msg": "Incident priority not found.",
73+
"loc": "incident_priority",
74+
"incident_priority": incident_priority_in.name,
75+
}
76+
]
77+
)
7478

7579
return incident_priority
7680

@@ -79,13 +83,12 @@ def get_by_name_or_default(
7983
*, db_session, project_id: int, incident_priority_in=IncidentPriorityRead
8084
) -> IncidentPriority:
8185
"""Returns a incident priority based on a name or the default if not specified."""
82-
if incident_priority_in:
83-
if incident_priority_in.name:
84-
return get_by_name_or_raise(
85-
db_session=db_session,
86-
project_id=project_id,
87-
incident_priority_in=incident_priority_in,
88-
)
86+
if incident_priority_in and incident_priority_in.name:
87+
incident_priority = get_by_name(
88+
db_session=db_session, project_id=project_id, name=incident_priority_in.name
89+
)
90+
if incident_priority:
91+
return incident_priority
8992
return get_default_or_raise(db_session=db_session, project_id=project_id)
9093

9194

src/dispatch/incident/severity/service.py

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -44,9 +44,9 @@ def get_default_or_raise(*, db_session, project_id: int) -> IncidentSeverity:
4444
"loc": ("incident_severity",),
4545
"input": None,
4646
"msg": "No default incident severity defined.",
47-
"ctx": {"error": ValueError("No default incident severity defined.")}
47+
"ctx": {"error": ValueError("No default incident severity defined.")},
4848
}
49-
]
49+
],
5050
)
5151

5252
return incident_severity
@@ -71,14 +71,16 @@ def get_by_name_or_raise(
7171
)
7272

7373
if not incident_severity:
74-
raise ValidationError([
75-
{
76-
"msg": "Incident severity not found.",
77-
"loc": ("incident_severity",),
78-
"type": "value_error.not_found",
79-
"incident_severity": incident_severity_in.name,
80-
}
81-
])
74+
raise ValidationError(
75+
[
76+
{
77+
"msg": "Incident severity not found.",
78+
"loc": ("incident_severity",),
79+
"type": "value_error.not_found",
80+
"incident_severity": incident_severity_in.name,
81+
}
82+
]
83+
)
8284

8385
return incident_severity
8486

@@ -87,14 +89,12 @@ def get_by_name_or_default(
8789
*, db_session, project_id: int, incident_severity_in=IncidentSeverityRead
8890
) -> IncidentSeverity:
8991
"""Returns an incident severity based on a name or the default if not specified."""
90-
if incident_severity_in:
91-
if incident_severity_in.name:
92-
return get_by_name_or_raise(
93-
db_session=db_session,
94-
project_id=project_id,
95-
incident_severity_in=incident_severity_in,
96-
)
97-
92+
if incident_severity_in and incident_severity_in.name:
93+
incident_severity = get_by_name(
94+
db_session=db_session, project_id=project_id, name=incident_severity_in.name
95+
)
96+
if incident_severity:
97+
return incident_severity
9898
return get_default_or_raise(db_session=db_session, project_id=project_id)
9999

100100

src/dispatch/incident/type/service.py

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ def get_default_or_raise(*, db_session, project_id: int) -> IncidentType:
4141
"input": None,
4242
"ctx": {"error": ValueError("No default incident type defined.")},
4343
}
44-
]
44+
],
4545
)
4646
return incident_type
4747

@@ -74,7 +74,7 @@ def get_by_name_or_raise(
7474
"input": incident_type_in.name,
7575
"ctx": {"error": ValueError("Incident type not found.")},
7676
}
77-
]
77+
],
7878
)
7979

8080
return incident_type
@@ -84,11 +84,12 @@ def get_by_name_or_default(
8484
*, db_session, project_id: int, incident_type_in=IncidentTypeRead
8585
) -> IncidentType:
8686
"""Returns a incident_type based on a name or the default if not specified."""
87-
if incident_type_in:
88-
if incident_type_in.name:
89-
return get_by_name_or_raise(
90-
db_session=db_session, project_id=project_id, incident_type_in=incident_type_in
91-
)
87+
if incident_type_in and incident_type_in.name:
88+
incident_type = get_by_name(
89+
db_session=db_session, project_id=project_id, name=incident_type_in.name
90+
)
91+
if incident_type:
92+
return incident_type
9293
return get_default_or_raise(db_session=db_session, project_id=project_id)
9394

9495

src/dispatch/organization/service.py

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
21
from pydantic import ValidationError
32
from sqlalchemy.sql.expression import true
43

@@ -25,13 +24,15 @@ def get_default_or_raise(*, db_session) -> Organization:
2524
organization = get_default(db_session=db_session)
2625

2726
if not organization:
28-
raise ValidationError([
29-
{
30-
"loc": ("organization",),
31-
"msg": "No default organization defined.",
32-
"type": "value_error",
33-
}
34-
])
27+
raise ValidationError(
28+
[
29+
{
30+
"loc": ("organization",),
31+
"msg": "No default organization defined.",
32+
"type": "value_error",
33+
}
34+
]
35+
)
3536
return organization
3637

3738

@@ -85,10 +86,11 @@ def get_by_slug_or_raise(*, db_session, organization_in: OrganizationRead) -> Or
8586

8687
def get_by_name_or_default(*, db_session, organization_in: OrganizationRead) -> Organization:
8788
"""Returns a organization based on a name or the default if not specified."""
88-
if organization_in.name:
89-
return get_by_name_or_raise(db_session=db_session, organization_in=organization_in)
90-
else:
91-
return get_default_or_raise(db_session=db_session)
89+
if organization_in and organization_in.name:
90+
organization = get_by_name(db_session=db_session, name=organization_in.name)
91+
if organization:
92+
return organization
93+
return get_default_or_raise(db_session=db_session)
9294

9395

9496
def get_all(*, db_session) -> list[Organization | None]:

src/dispatch/project/service.py

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
21
from pydantic import ValidationError
32
from sqlalchemy.orm import Session
43
from sqlalchemy.sql.expression import true
@@ -22,13 +21,15 @@ def get_default_or_raise(*, db_session: Session) -> Project:
2221
project = get_default(db_session=db_session)
2322

2423
if not project:
25-
raise ValidationError([
26-
{
27-
"loc": ("project",),
28-
"msg": "No default project defined.",
29-
"type": "value_error",
30-
}
31-
])
24+
raise ValidationError(
25+
[
26+
{
27+
"loc": ("project",),
28+
"msg": "No default project defined.",
29+
"type": "value_error",
30+
}
31+
]
32+
)
3233
return project
3334

3435

@@ -57,9 +58,10 @@ def get_by_name_or_raise(*, db_session: Session, project_in: ProjectRead) -> Pro
5758

5859
def get_by_name_or_default(*, db_session, project_in: ProjectRead) -> Project:
5960
"""Returns a project based on a name or the default if not specified."""
60-
if project_in:
61-
if project_in.name:
62-
return get_by_name_or_raise(db_session=db_session, project_in=project_in)
61+
if project_in and project_in.name:
62+
project = get_by_name(db_session=db_session, name=project_in.name)
63+
if project:
64+
return project
6365
return get_default_or_raise(db_session=db_session)
6466

6567

0 commit comments

Comments
 (0)