biscuit_actix_middleware/
error.rs

1/*
2 * SPDX-FileCopyrightText: 2023 Tristan Germain <ge.tristan@gmail.com>
3 *
4 * SPDX-License-Identifier: Apache-2.0
5 */
6
7use actix_web::{error::ResponseError, HttpResponse};
8use derive_more::Display;
9
10pub(crate) type MiddlewareResult<R> = Result<R, HttpResponse>;
11
12#[derive(Debug, Display)]
13pub enum MiddlewareError {
14    InvalidHeader,
15    InvalidToken,
16}
17
18impl ResponseError for MiddlewareError {
19    fn error_response(&self) -> HttpResponse {
20        match self {
21            MiddlewareError::InvalidHeader => HttpResponse::Unauthorized().finish(),
22            MiddlewareError::InvalidToken => HttpResponse::Forbidden().finish(),
23        }
24    }
25}