Skip to content

Commit 655d2fe

Browse files
committed
feat: add error level mapping support for upstream sync
- Add level parameter to error messages (defaults to 'error') - Add _get_level() helper function - Freightcom API v2 does not provide level field, so defaults to 'error' - Required for upstream sync with karrio-community (commit 1a1b158)
1 parent cc94416 commit 655d2fe

2 files changed

Lines changed: 12 additions & 1 deletion

File tree

plugins/freightcom_rest/karrio/providers/freightcom_rest/error.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,10 +26,20 @@ def parse_error_response(
2626
if (error.get("details", {}) or error.get("data", {}))
2727
else error.get("message")
2828
),
29+
level=_get_level(error),
2930
details={
3031
**kwargs,
3132
**(error.get('data', {}))
3233
},
3334
)
3435
for error in errors
3536
]
37+
38+
39+
def _get_level(error: dict, default_level: str = "error") -> str:
40+
"""Map Freightcom error response to standardized level.
41+
42+
Freightcom API v2 does not provide a level field in error responses.
43+
All error responses default to "error" level.
44+
"""
45+
return default_level

plugins/freightcom_rest/tests/freightcom_rest/test_rate.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -449,7 +449,8 @@ def test_parse_error_response(self):
449449
{
450450
"carrier_id": "freightcom_rest",
451451
"carrier_name": "freightcom_rest",
452-
"message": "Unable to get rates",
452+
"message": "Unable to get rates: services: invalid-syntax",
453+
"level": "error",
453454
"details": {
454455
"services": "invalid-syntax"
455456
}

0 commit comments

Comments
 (0)