Add API
Some checks failed
Build Crate / build (push) Failing after 6m25s

This commit is contained in:
2023-09-20 21:32:19 -04:00
parent ec06340def
commit 3d52cd0a24
8 changed files with 116 additions and 28 deletions

View File

@@ -6,11 +6,60 @@ mod error_views;
use perseus::prelude::*;
use sycamore::prelude::view;
#[perseus::main(perseus_axum::dflt_server)]
#[cfg(engine)]
use axum::{
body::Body,
extract::{Path, Query},
http::{Request, StatusCode},
response::{IntoResponse, Response},
routing::{get, get_service},
Router,
};
#[cfg(engine)]
use perseus::turbine::ApiResponse as PerseusApiResponse;
#[cfg(engine)]
use perseus::{
i18n::TranslationsManager,
path::*,
server::ServerOptions,
stores::MutableStore,
turbine::{SubsequentLoadQueryParams, Turbine},
};
#[cfg(engine)]
use tower_http::services::{ServeDir, ServeFile};
async fn print_something() {
println!("haha");
}
#[cfg(engine)]
pub async fn dflt_server<M: MutableStore + 'static, T: TranslationsManager + 'static>(
turbine: &'static Turbine<M, T>,
opts: ServerOptions,
(host, port): (String, u16),
) {
use std::net::SocketAddr;
let addr: SocketAddr = format!("{}:{}", host, port)
.parse()
.expect("Invalid address provided to bind to.");
let mut app = perseus_axum::get_router(turbine, opts).await;
app = app.route("/api/test", get(print_something));
axum::Server::bind(&addr)
.serve(app.into_make_service())
.await
.unwrap();
}
#[perseus::main(dflt_server)]
pub fn main<G: Html>() -> PerseusApp<G> {
env_logger::init();
PerseusApp::new()
.global_state_creator(crate::data::global_state::get_global_state_creator())
.template(crate::templates::index::get_template())
.template(crate::templates::add_game_form::get_template())
.template(crate::templates::one_v_one_board::get_template())