feat(api): implement PKError in rust-api

This commit is contained in:
alyssa 2025-08-10 00:25:29 +00:00 committed by Iris System
parent 2aa7681d78
commit e7ee593a85
9 changed files with 157 additions and 63 deletions

View file

@ -4,8 +4,8 @@ use auth::{AuthState, INTERNAL_APPID_HEADER, INTERNAL_SYSTEMID_HEADER};
use axum::{
body::Body,
extract::{Request as ExtractRequest, State},
http::{Response, StatusCode, Uri},
response::IntoResponse,
http::Uri,
response::{IntoResponse, Response},
routing::{delete, get, patch, post},
Extension, Router,
};
@ -13,7 +13,9 @@ use hyper_util::{
client::legacy::{connect::HttpConnector, Client},
rt::TokioExecutor,
};
use tracing::{error, info};
use tracing::info;
use pk_macros::api_endpoint;
mod auth;
mod endpoints;
@ -30,11 +32,12 @@ pub struct ApiContext {
rproxy_client: Client<HttpConnector, Body>,
}
#[api_endpoint]
async fn rproxy(
Extension(auth): Extension<AuthState>,
State(ctx): State<ApiContext>,
mut req: ExtractRequest<Body>,
) -> Result<Response<Body>, StatusCode> {
) -> Response {
let path = req.uri().path();
let path_query = req
.uri()
@ -59,15 +62,7 @@ async fn rproxy(
headers.append(INTERNAL_APPID_HEADER, aid.into());
}
Ok(ctx
.rproxy_client
.request(req)
.await
.map_err(|error| {
error!(?error, "failed to serve reverse proxy to dotnet-api");
StatusCode::BAD_GATEWAY
})?
.into_response())
Ok(ctx.rproxy_client.request(req).await?.into_response())
}
// this function is manually formatted for easier legibility of route_services