Skip to content
This repository was archived by the owner on Jun 28, 2024. It is now read-only.

Commit 1edd6bb

Browse files
committed
Add WaitForAccessCodeFailedException
1 parent bf659fd commit 1edd6bb

File tree

2 files changed

+25
-1
lines changed

2 files changed

+25
-1
lines changed

seamapi/access_codes.py

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import time
22
from datetime import datetime, timezone, timedelta
33
from seamapi.types import (
4+
WaitForAccessCodeFailedException,
45
AbstractAccessCodes,
56
AccessCode,
67
AccessCodeId,
@@ -185,7 +186,16 @@ def create(
185186
if wait_for_code:
186187
while (access_code.code is None):
187188
if (access_code.status == "unknown"):
188-
raise RuntimeError("Gave up waiting for code since access code status is unknown")
189+
raise WaitForAccessCodeFailedException(
190+
"Access code status returned unknown",
191+
access_code_id=access_code.access_code_id
192+
)
193+
if (len(access_code.errors) > 0):
194+
raise WaitForAccessCodeFailedException(
195+
"Access code returned errors",
196+
access_code_id=access_code.access_code_id,
197+
errors=access_code.errors
198+
)
189199
time.sleep(0.25)
190200
access_code = access_codes.get(access_code)
191201

seamapi/types.py

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
# TODO this file should eventually be generated by looking at openapi.json
22

33
import abc
4+
from seamapi.types import WaitForAccessCodeFailedException
45
from typing import List, Optional, Union, Dict, Any
56
from dataclasses import dataclass
67
from dataclasses_json import dataclass_json
@@ -46,6 +47,19 @@ def __init__(
4647
f'Action Attempt for "{action_type}" Failed. {error_type}: {error_message} (action_attempt_id={action_attempt_id})'
4748
)
4849

50+
class WaitForAccessCodeFailedException(Exception):
51+
def __init__(
52+
self,
53+
message: str,
54+
access_code_id: str,
55+
errors: Optional[list] = []
56+
):
57+
self.access_code_id = access_code_id
58+
self.errors = errors
59+
super().__init__(
60+
f'Failed while waiting for access code. ${message}'
61+
)
62+
4963

5064
@dataclass
5165
class Device:

0 commit comments

Comments
 (0)