Skip to content

Commit d4b17e4

Browse files
authored
Merge pull request #58 from epenet/epenet/20260121-0744
Raise custom exception in CustomerApi.__request
2 parents f000ef0 + 084aa67 commit d4b17e4

2 files changed

Lines changed: 19 additions & 1 deletion

File tree

tuya_sharing/customerapi.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import requests
77
from .const import DEFAULT_TIMEOUT
88
from .customerlogging import logger
9+
from .exceptions import ApiRequestException
910
import json
1011
import hmac
1112
import hashlib
@@ -115,7 +116,7 @@ def __request(
115116
logger.debug("response before decrypt ret = %s", ret)
116117

117118
if not ret.get("success"):
118-
raise Exception(f"network error:({ret['code']}) {ret['msg']}")
119+
raise ApiRequestException(error_code=ret["code"], error_message=ret["msg"])
119120

120121
result = _aex_gcm_decrypt(ret.get("result"), secret)
121122
try:

tuya_sharing/exceptions.py

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
class TuyaSDKException(Exception):
2+
"""Base exception for the SDK"""
3+
4+
5+
class ApiRequestException(TuyaSDKException):
6+
"""Exception raised when the server returned an error."""
7+
8+
def __init__(
9+
self,
10+
*,
11+
error_code: str,
12+
error_message: str,
13+
) -> None:
14+
"""Initialize exception."""
15+
super().__init__(f"network error:({error_code}) {error_message}")
16+
self.error_code = error_code
17+
self.error_message = error_message

0 commit comments

Comments
 (0)