github.com/Venafi/vcert/v5@v5.10.2/pkg/venafi/firefly/devAuthStatus.go (about)

     1  package firefly
     2  
     3  import (
     4  	"errors"
     5  	"strings"
     6  )
     7  
     8  type DevAuthStatus int
     9  
    10  const (
    11  	Unknown DevAuthStatus = iota
    12  	AuthorizationPending
    13  	SlowDown
    14  	AccessDenied
    15  	ExpiredToken
    16  
    17  	strUnknown      = "unknown"
    18  	strAuthPending  = "authorization_pending"
    19  	strSlowDown     = "slow_down"
    20  	strAccessDenied = "access_denied"
    21  	strExpiredToken = "expired_token"
    22  )
    23  
    24  func (das DevAuthStatus) String() string {
    25  	switch das {
    26  	case AuthorizationPending:
    27  		return strAuthPending
    28  	case SlowDown:
    29  		return strSlowDown
    30  	case AccessDenied:
    31  		return strAccessDenied
    32  	case ExpiredToken:
    33  		return strExpiredToken
    34  	default:
    35  		return strUnknown
    36  	}
    37  }
    38  
    39  func GetDevAuthStatusFromError(err error) DevAuthStatus {
    40  	var respError *responseError
    41  	if errors.As(err, &respError) {
    42  		return GetDevAuthStatus(respError.ErrorKey)
    43  	}
    44  	return Unknown
    45  }
    46  
    47  func GetDevAuthStatus(devAuthStatus string) DevAuthStatus {
    48  	switch strings.ToLower(devAuthStatus) {
    49  	case strAuthPending:
    50  		return AuthorizationPending
    51  	case strSlowDown:
    52  		return SlowDown
    53  	case strAccessDenied:
    54  		return AccessDenied
    55  	case strExpiredToken:
    56  		return ExpiredToken
    57  	default:
    58  		return Unknown
    59  	}
    60  }