hyf

Context-aware query service for Radroots
git clone https://radroots.dev/git/hyf.git
Log | Files | Refs | README | LICENSE

jev_failures.mojo (1628B)


      1 @fieldwise_init
      2 struct JevFailure(Copyable, Movable):
      3     var family: String
      4     var retryable: Bool
      5 
      6 
      7 def map_jev_failure(kind: String) raises -> JevFailure:
      8     var lowered = kind.lower()
      9     if lowered == "authentication":
     10         return JevFailure(family="provider_auth", retryable=False)
     11     if lowered == "validation":
     12         return JevFailure(family="provider_validation", retryable=False)
     13     if lowered == "bad_request":
     14         return JevFailure(family="provider_validation", retryable=False)
     15     if lowered == "not_found":
     16         return JevFailure(family="provider_validation", retryable=False)
     17     if lowered == "unprocessable_entity":
     18         return JevFailure(family="provider_validation", retryable=False)
     19     if lowered == "rate_limit":
     20         return JevFailure(family="provider_capacity", retryable=True)
     21     if lowered == "overloaded":
     22         return JevFailure(family="provider_capacity", retryable=True)
     23     if lowered == "internal_server":
     24         return JevFailure(family="provider_transport", retryable=True)
     25     if lowered == "request_timeout":
     26         return JevFailure(family="provider_transport", retryable=True)
     27     if lowered == "connection":
     28         return JevFailure(family="provider_transport", retryable=True)
     29     if lowered == "timeout":
     30         return JevFailure(family="provider_transport", retryable=True)
     31     if lowered == "response_validation":
     32         return JevFailure(family="provider_response_contract", retryable=False)
     33     if lowered == "transport":
     34         return JevFailure(family="provider_transport", retryable=False)
     35     raise Error("unknown provider failure kind: " + kind)