aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormetamuffin <metamuffin@disroot.org>2025-08-14 20:56:50 +0200
committermetamuffin <metamuffin@disroot.org>2025-08-14 20:56:50 +0200
commitaab1ddb1887ce49e7f533a1f4e9fe0f6aa839516 (patch)
treed2cf5e51bbca05aef24a2030c135eb4b454614ac
parent560430521ef6653b90b913faeb404845281cbc7f (diff)
downloadmeta-adservices-aab1ddb1887ce49e7f533a1f4e9fe0f6aa839516.tar
meta-adservices-aab1ddb1887ce49e7f533a1f4e9fe0f6aa839516.tar.bz2
meta-adservices-aab1ddb1887ce49e7f533a1f4e9fe0f6aa839516.tar.zst
image content typeHEADmaster
-rw-r--r--src/embed.rs9
1 files changed, 5 insertions, 4 deletions
diff --git a/src/embed.rs b/src/embed.rs
index b7d44aa..b3342cd 100644
--- a/src/embed.rs
+++ b/src/embed.rs
@@ -68,23 +68,24 @@ pub async fn r_embed<'a>(
}
#[get("/v1/image?<k>")]
-pub async fn r_image(state: &State<Arc<Logic>>, k: &str) -> MyResult<CachedFile> {
+pub async fn r_image(state: &State<Arc<Logic>>, k: &str) -> MyResult<CachedImage> {
let info = state
.config
.ads
.get(&k.to_owned())
.ok_or(anyhow!("ad does not exist"))?;
- Ok(CachedFile(
+ Ok(CachedImage(
File::open(state.config.ad_dir.join(&info.image)).await?,
))
}
-pub struct CachedFile(File);
-impl<'r> Responder<'r, 'static> for CachedFile {
+pub struct CachedImage(File);
+impl<'r> Responder<'r, 'static> for CachedImage {
fn respond_to(self, _req: &'r Request<'_>) -> response::Result<'static> {
Response::build()
.status(Status::Ok)
.header(Header::new("cache-control", "max-age=3600, public"))
+ .header(Header::new("content-type", "image/webp"))
.streamed_body(self.0)
.ok()
}