Use new Service trait
This commit is contained in:
parent
34e2942f5f
commit
361b446f2a
18
src/main.rs
18
src/main.rs
@ -9,6 +9,7 @@ extern crate serde_derive;
|
|||||||
|
|
||||||
mod cache;
|
mod cache;
|
||||||
mod error;
|
mod error;
|
||||||
|
mod service;
|
||||||
|
|
||||||
use crate::{cache::CacheState, error::Error};
|
use crate::{cache::CacheState, error::Error};
|
||||||
use actix_web::{
|
use actix_web::{
|
||||||
@ -160,12 +161,11 @@ fn remote_exists(url: &str) -> Result<bool, Error> {
|
|||||||
Ok(CLIENT.head(url).send()?.status() == reqwest::StatusCode::OK)
|
Ok(CLIENT.head(url).send()?.status() == reqwest::StatusCode::OK)
|
||||||
}
|
}
|
||||||
|
|
||||||
fn calculate_hoc(
|
fn calculate_hoc<T: Service>(
|
||||||
service: &str,
|
|
||||||
state: web::Data<Arc<State>>,
|
state: web::Data<Arc<State>>,
|
||||||
data: web::Path<(String, String)>,
|
data: web::Path<(String, String)>,
|
||||||
) -> Result<HttpResponse, Error> {
|
) -> Result<HttpResponse, Error> {
|
||||||
let service_path = format!("{}/{}/{}", service, data.0, data.1);
|
let service_path = format!("{}/{}/{}", T::domain(), data.0, data.1);
|
||||||
let path = format!("{}/{}", state.repos, service_path);
|
let path = format!("{}/{}", state.repos, service_path);
|
||||||
let file = Path::new(&path);
|
let file = Path::new(&path);
|
||||||
if !file.exists() {
|
if !file.exists() {
|
||||||
@ -263,12 +263,12 @@ fn main() -> std::io::Result<()> {
|
|||||||
.wrap(middleware::Logger::default())
|
.wrap(middleware::Logger::default())
|
||||||
.service(index)
|
.service(index)
|
||||||
.service(css)
|
.service(css)
|
||||||
.service(web::resource("/github/{user}/{repo}").to(github))
|
.service(web::resource("/github/{user}/{repo}").to(calculate_hoc::<GitHub>))
|
||||||
.service(web::resource("/gitlab/{user}/{repo}").to(gitlab))
|
.service(web::resource("/gitlab/{user}/{repo}").to(calculate_hoc::<Gitlab>))
|
||||||
.service(web::resource("/bitbucket/{user}/{repo}").to(bitbucket))
|
.service(web::resource("/bitbucket/{user}/{repo}").to(calculate_hoc::<Bitbucket>))
|
||||||
.service(web::resource("/view/github/{user}/{repo}").to(overview))
|
.service(web::resource("/view/github/{user}/{repo}").to(overview::<GitHub>))
|
||||||
.service(web::resource("/view/gitlab/{user}/{repo}").to(overview))
|
.service(web::resource("/view/gitlab/{user}/{repo}").to(overview::<Gitlab>))
|
||||||
.service(web::resource("/view/github/{user}/{repo}").to(overview))
|
.service(web::resource("/view/bitbucket/{user}/{repo}").to(overview::<Bitbucket>))
|
||||||
.default_service(web::resource("").route(web::get().to(p404)))
|
.default_service(web::resource("").route(web::get().to(p404)))
|
||||||
})
|
})
|
||||||
.bind(interface)?
|
.bind(interface)?
|
||||||
|
Loading…
x
Reference in New Issue
Block a user