/** * * @file AuthError.cpp * @author Gaspard Kirira * * Copyright 2026, Gaspard Kirira. * All rights reserved. * https://github.com/rixcpp/auth * * Use of this source code is governed by a MIT license * that can be found in the License file. * * Rix * */ #include #include namespace rixlib::auth { AuthError::AuthError(AuthErrorCode code, std::string message) : code_(code), message_(std::move(message)) { } bool AuthError::ok() const noexcept { return code_ == AuthErrorCode::None; } bool AuthError::has_error() const noexcept { return !ok(); } AuthErrorCode AuthError::code() const noexcept { return code_; } const std::string &AuthError::message() const noexcept { return message_; } bool AuthError::is(AuthErrorCode code) const noexcept { return code_ == code; } std::string_view to_string(AuthErrorCode code) noexcept { switch (code) { case AuthErrorCode::None: return "none"; case AuthErrorCode::InvalidInput: return "invalid_input"; case AuthErrorCode::InvalidState: return "invalid_state"; case AuthErrorCode::InvalidEmail: return "invalid_email"; case AuthErrorCode::InvalidPassword: return "invalid_password"; case AuthErrorCode::UserNotFound: return "user_not_found"; case AuthErrorCode::UserAlreadyExists: return "user_already_exists"; case AuthErrorCode::InvalidCredentials: return "invalid_credentials"; case AuthErrorCode::EmailVerificationRequired: return "email_verification_required"; case AuthErrorCode::UserDisabled: return "user_disabled"; case AuthErrorCode::InvalidSession: return "invalid_session"; case AuthErrorCode::SessionExpired: return "session_expired"; case AuthErrorCode::SessionRevoked: return "session_revoked"; case AuthErrorCode::InvalidToken: return "invalid_token"; case AuthErrorCode::TokenExpired: return "token_expired"; case AuthErrorCode::TokenRevoked: return "token_revoked"; case AuthErrorCode::StoreError: return "store_error"; case AuthErrorCode::CryptoError: return "crypto_error"; case AuthErrorCode::ValidationError: return "validation_error"; case AuthErrorCode::ConfigurationError: return "configuration_error"; case AuthErrorCode::Unknown: return "unknown"; } return "unknown"; } AuthError make_auth_ok() { return AuthError{}; } AuthError make_auth_error( AuthErrorCode code, std::string message) { return AuthError{code, std::move(message)}; } } // namespace rixlib::auth