feature/upstream-service #13

Merged
GW_MC merged 43 commits from feature/upstream-service into master 2026-01-01 10:49:32 +08:00
4 changed files with 26 additions and 4 deletions
Showing only changes of commit fdfd1c98e0 - Show all commits

View File

@@ -1 +1,2 @@
pub mod api_error;
pub mod service_error; pub mod service_error;

View File

@@ -0,0 +1,21 @@
use axum::response::IntoResponse;
use crate::errors::service_error::ServiceError;
pub enum ApiError {
ServiceError(ServiceError),
}
impl From<ServiceError> for ApiError {
fn from(err: ServiceError) -> Self {
ApiError::ServiceError(err)
}
}
impl IntoResponse for ApiError {
fn into_response(self) -> axum::response::Response {
match self {
ApiError::ServiceError(service_error) => service_error.into_response(),
}
}
}

View File

@@ -9,7 +9,7 @@ use serde::{Deserialize, Serialize};
use uuid::Uuid; use uuid::Uuid;
use crate::{ use crate::{
errors::service_error::ServiceError, errors::{api_error::ApiError, service_error::ServiceError},
routes::{ routes::{
AppState, AppState,
api::{ api::{
@@ -64,7 +64,7 @@ pub async fn get_upstream(
Path(upstream_id): Path<Uuid>, Path(upstream_id): Path<Uuid>,
Query(params): Query<GetUpstreamParams>, Query(params): Query<GetUpstreamParams>,
State(_state): State<Arc<AppState>>, State(_state): State<Arc<AppState>>,
) -> AxumResult<Json<UpstreamInfoResponse>, ServiceError> { ) -> AxumResult<Json<UpstreamInfoResponse>, ApiError> {
let concrete_params: ConcreteGetUpstreamParams = params.into(); let concrete_params: ConcreteGetUpstreamParams = params.into();
let upstream_service = &_state.service.nginx.get_upstream_service(); let upstream_service = &_state.service.nginx.get_upstream_service();
let upstream_info = if concrete_params.include_targets { let upstream_info = if concrete_params.include_targets {

View File

@@ -9,7 +9,7 @@ use serde::{Deserialize, Serialize};
use uuid::Uuid; use uuid::Uuid;
use crate::{ use crate::{
errors::service_error::ServiceError, errors::{api_error::ApiError, service_error::ServiceError},
routes::{AppState, api::restricted::nginx::upstream::info::response::UpstreamTargetInfo}, routes::{AppState, api::restricted::nginx::upstream::info::response::UpstreamTargetInfo},
}; };
@@ -34,7 +34,7 @@ pub async fn get_upstream_target(
Path(upstream_target_id): Path<Uuid>, Path(upstream_target_id): Path<Uuid>,
Query(params): Query<GetUpstreamTargetsParams>, Query(params): Query<GetUpstreamTargetsParams>,
State(_state): State<Arc<AppState>>, State(_state): State<Arc<AppState>>,
) -> AxumResult<Json<UpstreamTargetInfo>, ServiceError> { ) -> AxumResult<Json<UpstreamTargetInfo>, ApiError> {
let concrete_params: ConcreteGetUpstreamTargetsParams = params.into(); let concrete_params: ConcreteGetUpstreamTargetsParams = params.into();
let upstream_service = &_state.service.nginx.get_upstream_service(); let upstream_service = &_state.service.nginx.get_upstream_service();
let upstream_target_info = upstream_service let upstream_target_info = upstream_service