move to api

This commit is contained in:
JMARyA 2024-04-04 07:41:13 +02:00
parent c012683af1
commit 9da4ef072c
Signed by: jmarya
GPG key ID: 901B2ADDF27C2263
6 changed files with 14 additions and 35 deletions

View file

@ -2,8 +2,7 @@ use actix_web::{get, HttpRequest, Responder};
use maud::html; use maud::html;
mod item; mod item;
mod pages; mod routes;
mod ui;
// ░░░░░░░░░░▀▀▀██████▄▄▄░░░░░░░░░░ // ░░░░░░░░░░▀▀▀██████▄▄▄░░░░░░░░░░
// ░░░░░░░░░░░░░░░░░▀▀▀████▄░░░░░░░ // ░░░░░░░░░░░░░░░░░▀▀▀████▄░░░░░░░
@ -23,14 +22,7 @@ mod ui;
#[get("/")] #[get("/")]
pub(crate) async fn index(r: HttpRequest) -> impl Responder { pub(crate) async fn index(r: HttpRequest) -> impl Responder {
let itemdb: &actix_web::web::Data<item::ItemDB> = r.app_data().unwrap(); let itemdb: &actix_web::web::Data<item::ItemDB> = r.app_data().unwrap();
let content = "";
let content = html!(
p class="text-xl font-bold" { "Hello World" };
@for item in itemdb.items() {
a href=(format!("/item/{}", item)) { (item) };
}
)
.into_string();
web_base::func::build_site(&r, "Index", &content) web_base::func::build_site(&r, "Index", &content)
} }
@ -41,19 +33,15 @@ async fn main() -> std::io::Result<()> {
let itemdb = item::ItemDB::new("./itemdb", "mongodb://user:pass@127.0.0.1:27017").await; let itemdb = item::ItemDB::new("./itemdb", "mongodb://user:pass@127.0.0.1:27017").await;
let itemdb = actix_web::web::Data::new(itemdb); let itemdb = actix_web::web::Data::new(itemdb);
web_base::map!( web_base::map!(web_base::Site::new(), |app: actix_web::App<_>| {
web_base::Site::new()
.head_content("<script src=\"https://cdn.tailwindcss.com\"></script>".to_string()),
|app: actix_web::App<_>| {
app.app_data(itemdb.clone()) app.app_data(itemdb.clone())
.service(index) .service(index)
.service(pages::item::item_page) .service(routes::item::item_page)
.service(pages::item::variant_pages::add_item_variant_page) .service(routes::item::variant_pages::add_item_variant_page)
.service(pages::item::variant_pages::add_item_variant_page_post) .service(routes::item::variant_pages::add_item_variant_page_post)
.service(pages::item::inventory_page::add_item_inventory_page) .service(routes::item::inventory_page::add_item_inventory_page)
.service(pages::item::inventory_page::add_item_inventory_page_post) .service(routes::item::inventory_page::add_item_inventory_page_post)
} })
)
.bind(("0.0.0.0".to_string(), 8080))? .bind(("0.0.0.0".to_string(), 8080))?
.run() .run()
.await .await

View file

@ -3,7 +3,7 @@ use maud::html;
pub mod inventory_page; pub mod inventory_page;
pub mod variant_pages; pub mod variant_pages;
use crate::{item, ui::button}; use crate::item;
#[get("/item/{item_id}")] #[get("/item/{item_id}")]
pub async fn item_page(r: HttpRequest) -> impl Responder { pub async fn item_page(r: HttpRequest) -> impl Responder {
@ -23,8 +23,8 @@ pub async fn item_page(r: HttpRequest) -> impl Responder {
p class="font-bold" { (format!("Category: {}", item.item.category))}; p class="font-bold" { (format!("Category: {}", item.item.category))};
}; };
div class="mt-5" { div class="mt-5" {
(button("Add Variant", &format!("/item/{}/variant/add", item.item.name))) // (button("Add Variant", &format!("/item/{}/variant/add", item.item.name)))
(button("Add inventory", &format!("/item/{}/inventory/add", item.item.name))); // (button("Add inventory", &format!("/item/{}/inventory/add", item.item.name)));
}; };
}; };

View file

@ -1,9 +0,0 @@
use maud::html;
pub fn button(title: &str, redir: &str) -> maud::PreEscaped<String> {
html!(
a class="bg-blue-500 hover:bg-blue-700 text-white font-bold py-2 px-4 rounded hover:cursor-pointer mt-1 mr-1 mb-1" href=(redir) {
(title)
};
)
}