40 lines
901 B
Rust
40 lines
901 B
Rust
mod error;
|
|
mod models;
|
|
mod response;
|
|
mod templates;
|
|
mod web_api;
|
|
mod web_app;
|
|
|
|
use axum::{response::Redirect, routing::get, Router};
|
|
|
|
#[tokio::main]
|
|
async fn main() {
|
|
// load from .env
|
|
dotenv::dotenv().ok();
|
|
|
|
let gotrue_client = gotrue::api::Client::new(
|
|
reqwest::Client::new(),
|
|
&std::env::var("GOTRUE_URL").unwrap_or("http://gotrue:9999".to_string()),
|
|
);
|
|
|
|
let state = AppState { gotrue_client };
|
|
|
|
let web_app_router = web_app::router();
|
|
let web_api_router = web_api::router().with_state(state);
|
|
|
|
let app = Router::new()
|
|
.route("/", get(|| async { Redirect::permanent("/web") }))
|
|
.nest_service("/web", web_app_router)
|
|
.nest_service("/web-api", web_api_router);
|
|
|
|
axum::Server::bind(&"0.0.0.0:3000".parse().unwrap())
|
|
.serve(app.into_make_service())
|
|
.await
|
|
.unwrap();
|
|
}
|
|
|
|
#[derive(Clone)]
|
|
pub struct AppState {
|
|
pub gotrue_client: gotrue::api::Client,
|
|
}
|