19 lines
668 B
C#
19 lines
668 B
C#
namespace Kbx.Shared.Integrations;
|
|
|
|
public static class KbxIntegrationFailureClassifier
|
|
{
|
|
public static KbxIntegrationFailureKind Classify(Exception error) => error switch
|
|
{
|
|
OperationCanceledException => KbxIntegrationFailureKind.Transient,
|
|
HttpRequestException => KbxIntegrationFailureKind.Transient,
|
|
_ => KbxIntegrationFailureKind.Permanent,
|
|
};
|
|
|
|
public static KbxIntegrationFailureKind ClassifyHttp(int statusCode) => statusCode switch
|
|
{
|
|
408 or 429 => KbxIntegrationFailureKind.Transient,
|
|
>= 500 and <= 599 => KbxIntegrationFailureKind.Transient,
|
|
_ => KbxIntegrationFailureKind.Permanent,
|
|
};
|
|
}
|