Skip to content

Commit

Permalink
Merge pull request #195 from LemmyNet/main
Browse files Browse the repository at this point in the history
[pull] master from LemmyNet:main
  • Loading branch information
pull[bot] authored Nov 25, 2024
2 parents ff6cf2e + bb26a70 commit ca3a3c2
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 1 deletion.
3 changes: 3 additions & 0 deletions api_tests/src/image.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,9 @@ afterAll(async () => {
});

test("Upload image and delete it", async () => {
const healthz = await fetch(alphaUrl + "/pictrs/healthz");
expect(healthz.status).toBe(200);

// Before running this test, you need to delete all previous images in the DB
await deleteAllImages(alpha);

Expand Down
22 changes: 21 additions & 1 deletion crates/routes/src/images.rs
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,8 @@ pub fn config(
)
// This has optional query params: /image/{filename}?format=jpg&thumbnail=256
.service(web::resource("/pictrs/image/{filename}").route(web::get().to(full_res)))
.service(web::resource("/pictrs/image/delete/{token}/{filename}").route(web::get().to(delete)));
.service(web::resource("/pictrs/image/delete/{token}/{filename}").route(web::get().to(delete)))
.service(web::resource("/pictrs/healthz").route(web::get().to(healthz)));
}

trait ProcessUrl {
Expand Down Expand Up @@ -250,6 +251,25 @@ async fn delete(
Ok(HttpResponse::build(convert_status(res.status())).body(BodyStream::new(res.bytes_stream())))
}

async fn healthz(
req: HttpRequest,
client: web::Data<ClientWithMiddleware>,
context: web::Data<LemmyContext>,
) -> LemmyResult<HttpResponse> {
let pictrs_config = context.settings().pictrs_config()?;
let url = format!("{}healthz", pictrs_config.url);

let mut client_req = adapt_request(&req, &client, url);

if let Some(addr) = req.head().peer_addr {
client_req = client_req.header("X-Forwarded-For", addr.to_string());
}

let res = client_req.send().await?;

Ok(HttpResponse::build(convert_status(res.status())).body(BodyStream::new(res.bytes_stream())))
}

pub async fn image_proxy(
Query(params): Query<ImageProxyParams>,
req: HttpRequest,
Expand Down

0 comments on commit ca3a3c2

Please sign in to comment.