Set expiry header to 60 seconds

Closes #9
This commit is contained in:
Valentin Brandl 2019-04-18 14:45:57 +02:00
parent ca422cfbf4
commit 1f010074fa
No known key found for this signature in database
GPG Key ID: 62E7C7F2C48DBBF2

View File

@ -1,7 +1,11 @@
#[macro_use] #[macro_use]
extern crate actix_web; extern crate actix_web;
use actix_web::{error, http, middleware, web, App, HttpResponse, HttpServer, ResponseError}; use actix_web::{
error,
http::{self, header::Expires},
middleware, web, App, HttpResponse, HttpServer, ResponseError,
};
use badge::{Badge, BadgeOptions}; use badge::{Badge, BadgeOptions};
use bytes::Bytes; use bytes::Bytes;
use futures::{unsync::mpsc, Stream}; use futures::{unsync::mpsc, Stream};
@ -10,6 +14,7 @@ use std::{
path::{Path, PathBuf}, path::{Path, PathBuf},
process::Command, process::Command,
sync::Arc, sync::Arc,
time::{Duration, SystemTime},
}; };
use structopt::StructOpt; use structopt::StructOpt;
@ -146,8 +151,10 @@ fn calculate_hoc(
let (tx, rx_body) = mpsc::unbounded(); let (tx, rx_body) = mpsc::unbounded();
let _ = tx.unbounded_send(Bytes::from(badge.to_svg().as_bytes())); let _ = tx.unbounded_send(Bytes::from(badge.to_svg().as_bytes()));
let expiration = SystemTime::now() + Duration::from_secs(60);
Ok(HttpResponse::Ok() Ok(HttpResponse::Ok()
.content_type("image/svg+xml") .content_type("image/svg+xml")
.set(Expires(expiration.into()))
.streaming(rx_body.map_err(|_| error::ErrorBadRequest("bad request")))) .streaming(rx_body.map_err(|_| error::ErrorBadRequest("bad request"))))
} }