@@ 65,6 65,22 @@ fn parse_resp(headers: &HeaderMap) -> Result<Uri> {
remove_query_params(uri)
}
+fn ok(body: String) -> HttpResponse {
+ HttpResponse::Ok().content_type("text/html").body(body)
+}
+
+fn bad_req(body: String) -> HttpResponse {
+ HttpResponse::BadRequest()
+ .content_type("text/html")
+ .body(body)
+}
+
+fn int_err(body: String) -> HttpResponse {
+ HttpResponse::InternalServerError()
+ .content_type("text/html")
+ .body(body)
+}
+
#[get("/clean")]
async fn clean(query: web::Query<Query>) -> impl Responder {
let client = Client::builder().disable_redirects().finish();
@@ 72,11 88,11 @@ async fn clean(query: web::Query<Query>) -> impl Responder {
Some(url) => match url.parse::<Uri>() {
Ok(url) => url,
Err(_) => {
- return HttpResponse::BadRequest().body(err("Requested URL isn't a valid URL"))
+ return bad_req(err("Requested URL isn't a valid URL"))
}
},
None => {
- return HttpResponse::BadRequest().body(err("Request didn't have text or url param"))
+ return bad_req(err("Request didn't have text or url param"))
}
};
@@ 91,16 107,15 @@ async fn clean(query: web::Query<Query>) -> impl Responder {
Ok(resp) if resp.status().as_u16() / 10 == 30 => match parse_resp(&resp.headers()) {
Ok(new_url) => url = new_url,
Err(_) => {
- break HttpResponse::InternalServerError().body(err("Tiktok returned bad link"))
+ break int_err(err("Tiktok returned bad link"))
}
},
Ok(_) => match remove_query_params(url) {
- Ok(new_url) => break HttpResponse::Ok().body(out(new_url)),
- Err(_) => break HttpResponse::InternalServerError().body(err("Error parsing URL")),
+ Ok(new_url) => break ok(out(new_url)),
+ Err(_) => break int_err(err("Error parsing URL")),
},
Err(_) => {
- break HttpResponse::InternalServerError()
- .body(err("Error making request to Tiktok"))
+ break int_err(err("Error making request to Tiktok"))
}
}
}
@@ 143,9 158,6 @@ async fn files(req: HttpRequest) -> impl Responder {
#[actix_web::main]
async fn main() -> io::Result<()> {
- if env::var("RUST_LOG").is_err() {
- env::set_var("RUST_LOG", "actix_web=info");
- }
env_logger::init();
let ip = env::var("IP").unwrap_or("127.0.0.1".to_owned());
let port = env::var("PORT").unwrap_or("8080".to_owned());