70 lines
2 KiB
Rust
70 lines
2 KiB
Rust
use anyhow::Result;
|
|
use tracing_subscriber::{layer::SubscriberExt, EnvFilter, Registry};
|
|
|
|
use axum::{
|
|
routing::{get, post},
|
|
Router,
|
|
};
|
|
|
|
mod crypto;
|
|
mod services;
|
|
|
|
use services::{auth, config, entry, errors};
|
|
|
|
const HOST: &str = "0.0.0.0";
|
|
const PORT: u16 = 21000;
|
|
|
|
#[tokio::main]
|
|
async fn main() -> Result<()> {
|
|
init_tracing()?;
|
|
|
|
let router = Router::new()
|
|
.route(auth::RISKY_API_CHECK_ENDPOINT, post(auth::risky_api_check))
|
|
.route(
|
|
auth::LOGIN_WITH_PASSWORD_ENDPOINT,
|
|
post(auth::login_with_password),
|
|
)
|
|
.route(
|
|
auth::LOGIN_WITH_SESSION_TOKEN_ENDPOINT,
|
|
post(auth::login_with_session_token),
|
|
)
|
|
.route(
|
|
auth::GRANTER_LOGIN_VERIFICATION_ENDPOINT,
|
|
post(auth::granter_login_verification),
|
|
)
|
|
.route(config::APP_CONFIG_ENDPOINT, get(config::application))
|
|
.route(config::SERVER_LIST_ENDPOINT, get(config::server_list))
|
|
.route(
|
|
config::VERSIONS_BUNDLE_ENDPOINT,
|
|
get(config::versions_bundle),
|
|
)
|
|
.route(entry::ACCOUNT_TOKEN_ENDPOINT, post(entry::account_token))
|
|
.route(entry::ACCOUNT_SERVER_ENDPOINT, post(entry::account_server))
|
|
.fallback(errors::not_found);
|
|
|
|
let bind_url = format!("{HOST}:{PORT}");
|
|
let http_server = axum_server::bind(bind_url.parse()?);
|
|
tracing::info!("SDK Server is listening at {bind_url}");
|
|
|
|
http_server.serve(router.into_make_service()).await?;
|
|
Ok(())
|
|
}
|
|
|
|
fn init_tracing() -> Result<()> {
|
|
#[cfg(target_os = "windows")]
|
|
ansi_term::enable_ansi_support().unwrap();
|
|
|
|
env_logger::init_from_env(env_logger::Env::new().default_filter_or("info"));
|
|
|
|
let log_filter = EnvFilter::try_from_default_env()
|
|
.unwrap_or_else(|_| EnvFilter::try_new("info").unwrap())
|
|
.add_directive("sdkserver=debug".parse().unwrap());
|
|
|
|
tracing::subscriber::set_global_default(
|
|
Registry::default()
|
|
.with(log_filter)
|
|
.with(tracing_subscriber::fmt::Layer::default()),
|
|
)?;
|
|
|
|
Ok(())
|
|
}
|