Files
library_updater/src/main.rs
2022-09-19 19:56:59 +03:00

59 lines
1.2 KiB
Rust

#[macro_use]
extern crate lazy_static;
pub mod config;
pub mod types;
pub mod utils;
pub mod updater;
use std::net::SocketAddr;
use axum::{Router, routing::post, http::HeaderMap};
use crate::updater::cron_jobs;
async fn update(headers: HeaderMap) -> &'static str {
let config_api_key = config::CONFIG.api_key.clone();
let api_key = match headers.get("Authorization") {
Some(v) => v,
None => return "No api-key!",
};
if config_api_key != api_key.to_str().unwrap() {
return "Wrong api-key!"
}
tokio::spawn(async {
match updater::update().await {
Ok(_) => log::info!("Updated!"),
Err(err) => log::info!("Updater err: {:?}", err),
};
});
"Update started"
}
async fn start_app() {
let app = Router::new()
.route("/update", post(update));
let addr = SocketAddr::from(([0, 0, 0, 0], 8080));
axum::Server::bind(&addr)
.serve(app.into_make_service())
.await
.unwrap();
}
#[tokio::main]
async fn main() {
let _guard = sentry::init(config::CONFIG.sentry_dsn.clone());
env_logger::init();
tokio::spawn(async {
cron_jobs().await
});
start_app().await;
}