feat: Chat request implementation #14

Manually merged
awiteb merged 55 commits from awiteb/chat-request-and-response into master 2024-07-18 14:21:39 +02:00 AGit
2 changed files with 13 additions and 2 deletions
Showing only changes of commit 43778a62fe - Show all commits

View file

@ -53,6 +53,7 @@ impl From<DbErr> for ServerError {
impl From<ServerError> for WsError { impl From<ServerError> for WsError {
fn from(err: ServerError) -> Self { fn from(err: ServerError) -> Self {
match err { match err {
ServerError::Api(ApiError::NotRegisteredUser) => WsError::RegistredUserEvent,
ServerError::Internal(_) | ServerError::Api(_) => WsError::InternalServerError, ServerError::Internal(_) | ServerError::Api(_) => WsError::InternalServerError,
ServerError::Ws(err) => err, ServerError::Ws(err) => err,
} }
@ -62,6 +63,7 @@ impl From<ServerError> for WsError {
impl From<ServerError> for ApiError { impl From<ServerError> for ApiError {
fn from(err: ServerError) -> Self { fn from(err: ServerError) -> Self {
match err { match err {
ServerError::Ws(WsError::RegistredUserEvent) => ApiError::NotRegisteredUser,
ServerError::Internal(_) | ServerError::Ws(_) => ApiError::Internal, ServerError::Internal(_) | ServerError::Ws(_) => ApiError::Internal,
ServerError::Api(err) => err, ServerError::Api(err) => err,
} }

View file

@ -41,6 +41,13 @@ pub enum ApiError {
/// (400 Bad Request) /// (400 Bad Request)
#[error("You entered two different public keys")] #[error("You entered two different public keys")]
TwoDifferentKeys, TwoDifferentKeys,
/// Error in the query parameters (400 Bad Request)
#[error("{0}")]
Querys(String),
/// Non registered user tried to access to registered user only endpoint
/// (403 Forbidden)
#[error("You are not a registered user, please register first")]
NotRegisteredUser,
} }
impl ApiError { impl ApiError {
@ -48,8 +55,10 @@ impl ApiError {
pub const fn status_code(&self) -> StatusCode { pub const fn status_code(&self) -> StatusCode {
match self { match self {
Self::Internal => StatusCode::INTERNAL_SERVER_ERROR, Self::Internal => StatusCode::INTERNAL_SERVER_ERROR,
Self::RegistrationClosed => StatusCode::FORBIDDEN, Self::RegistrationClosed | Self::NotRegisteredUser => StatusCode::FORBIDDEN,
Self::AlreadyRegistered | Self::TwoDifferentKeys => StatusCode::BAD_REQUEST, Self::AlreadyRegistered | Self::TwoDifferentKeys | Self::Querys(_) => {
StatusCode::BAD_REQUEST
}
} }
} }
} }