-
Notifications
You must be signed in to change notification settings - Fork 0
feat(types): Deposit/Withdrawal state 필드를 str에서 Enum으로 변경 #47
Copy link
Copy link
Open
Labels
enhancementNew feature or requestNew feature or request
Description
현재 상태
Deposit.state와 Withdrawal.state가 str 타입으로 정의되어 있어, 유효한 값이 무엇인지 코드만으로 알 수 없다.
class Deposit(BaseModel):
state: str # "ACCEPTED"? "accepted"? 알 수 없음
class Withdrawal(BaseModel):
state: str # "DONE"? "done"? 알 수 없음이로 인해 사용자가 API 문서를 직접 확인하지 않으면 대소문자 실수가 발생할 수 있다 (실제로 "accepted"로 잘못 비교하여 필터링이 동작하지 않는 버그 발생).
제안
Upbit API 응답의 state 값을 StrEnum으로 정의하여 타입 안전성을 확보한다.
class DepositState(StrEnum):
PROCESSING = "PROCESSING"
ACCEPTED = "ACCEPTED"
CANCELLED = "CANCELLED"
REJECTED = "REJECTED"
TRAVEL_RULE_SUSPECTED = "TRAVEL_RULE_SUSPECTED"
REFUNDING = "REFUNDING"
REFUNDED = "REFUNDED"
class WithdrawalState(StrEnum):
WAITING = "WAITING"
PROCESSING = "PROCESSING"
DONE = "DONE"
FAILED = "FAILED"
CANCELLED = "CANCELLED"
REJECTED = "REJECTED"변경 대상
types/deposit.py:Deposit.state: str→DepositStatetypes/withdrawal.py:Withdrawal.state: str→WithdrawalState,WithdrawalKrw.state: str→WithdrawalStateapi/deposits.py:list()메서드의state파라미터 타입을DepositState | None으로api/withdrawals.py:list()메서드의state파라미터 타입을WithdrawalState | None으로
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or request