Files
3x-ui-web-src/internal/pia/errors.go
T
Sanaei f727d04f65
CI / go-test (push) Canceled after 0s
CI / postgres-durable-first (push) Canceled after 0s
CI / codegen (push) Canceled after 0s
CI / govulncheck (push) Canceled after 0s
CI / race (push) Canceled after 0s
CI / fuzz-smoke (push) Canceled after 0s
CI / golangci (push) Canceled after 0s
CI / frontend (push) Canceled after 0s
CodeQL Advanced / Analyze (go) (push) Canceled after 0s
CodeQL Advanced / Analyze (actions) (push) Canceled after 0s
CodeQL Advanced / Analyze (javascript-typescript) (push) Canceled after 0s
Docs CI / build (push) Canceled after 0s
Docs Deploy (GitHub Pages) / build (push) Canceled after 0s
Release 3X-UI / build (386) (push) Canceled after 0s
Release 3X-UI / build (amd64) (push) Canceled after 0s
Release 3X-UI / build (arm64) (push) Canceled after 0s
Release 3X-UI / build (armv5) (push) Canceled after 0s
Release 3X-UI / build (armv6) (push) Canceled after 0s
Release 3X-UI / build (armv7) (push) Canceled after 0s
Release 3X-UI / build (s390x) (push) Canceled after 0s
Release 3X-UI / Build for Windows (amd64) (push) Canceled after 0s
Deploy Smoke Tests / noninteractive-install (ubuntu-24.04-arm) (push) Canceled after 0s
Deploy Smoke Tests / noninteractive-install (ubuntu-latest) (push) Canceled after 0s
Deploy Smoke Tests / release-tag-install (ubuntu-24.04-arm) (push) Canceled after 0s
Deploy Smoke Tests / release-tag-install (ubuntu-latest) (push) Canceled after 0s
Docs Deploy (GitHub Pages) / deploy (push) Canceled after 0s
Release 3X-UI / Publish rolling dev release (push) Canceled after 0s
v3.7.0
2026-08-24 15:07:15 +02:00

74 lines
1.7 KiB
Go

package pia
import (
"errors"
"fmt"
)
const (
CodeInvalidInput = "pia_invalid_input"
CodeInvalidCredentials = "pia_invalid_credentials"
CodeAuthenticationUnavailable = "pia_authentication_unavailable"
CodeTokenRejected = "pia_token_rejected"
CodeCatalogUnavailable = "pia_catalog_unavailable"
CodeCatalogSignatureInvalid = "pia_catalog_signature_invalid"
CodeCatalogSchemaUnsupported = "pia_catalog_schema_unsupported"
CodeServerNotFound = "pia_server_not_found"
CodeTLSValidation = "pia_tls_validation"
CodeRegistrationRejected = "pia_registration_rejected"
CodeRegistrationInvalid = "pia_registration_response_invalid"
CodeTimeout = "pia_timeout"
CodeCancelled = "pia_cancelled"
CodeNetworkUnavailable = "pia_network_unavailable"
)
type Error struct {
Code string
Message string
cause error
}
func NewError(code, message string) *Error {
return &Error{Code: code, Message: message}
}
func WrapError(code, message string, cause error) *Error {
return &Error{Code: code, Message: message, cause: cause}
}
func (e *Error) Error() string {
if e == nil {
return ""
}
return fmt.Sprintf("%s: %s", e.Code, e.Message)
}
func (e *Error) Unwrap() error {
if e == nil {
return nil
}
return e.cause
}
func CodeOf(err error) string {
if err == nil {
return ""
}
var pe *Error
if errors.As(err, &pe) && pe != nil {
return pe.Code
}
return CodeNetworkUnavailable
}
func MessageOf(err error) string {
var pe *Error
if errors.As(err, &pe) && pe != nil {
return pe.Message
}
if err == nil {
return ""
}
return "An unexpected error occurred."
}