do all db stuff in one shot

This commit is contained in:
Adam 2024-02-04 22:27:08 -05:00
parent dbfc7409c3
commit 6bfbf6ad0a
2 changed files with 97 additions and 28 deletions

View file

@ -3,7 +3,100 @@ use leptos::*;
use serde::*; use serde::*;
use sqlx::*; use sqlx::*;
pub async fn db_build(pool: &SqlitePool) -> Result<(), ServerFnError> { // pub async fn db_build(pool: &SqlitePool) -> Result<(), ServerFnError> {
// let _res = query(
// "
// CREATE TABLE
// blog (
// content_type TEXT,
// title TEXT,
// date TEXT,
// content TEXT
// )
// ",
// )
// .execute(pool)
// .await?;
//
// // println!("{:?}", _res);
//
// #[derive(Deserialize)]
// struct ArticleFrontmatter {
// content_type: String,
// title: String,
// date: String,
// }
//
// for file in std::fs::read_dir("./public/blog".to_string())? {
// let fileinfo = file?;
// let filepath = fileinfo.path();
//
// if let Some(filetype) = filepath.extension() {
// if filetype == "md" {
// let file = std::fs::read_to_string(filepath)?;
// let html_from_md =
// femark::process_markdown_to_html_with_frontmatter(&file.to_string(), true)
// .expect("Problem processing markdown");
// let content = html_from_md.content;
// let _toc = html_from_md.toc;
//
// if let Some(front_raw) = html_from_md.frontmatter {
// if let Some(front_code) = front_raw.code_block {
// let toml: ArticleFrontmatter = toml::from_str(&front_code.source)?;
//
// let article = Article {
// content_type: toml.content_type,
// title: toml.title,
// date: toml.date,
// content,
// };
//
// let _res = sqlx::query(
// "
// INSERT INTO
// blog (content_type, title, date, content)
// VALUES
// ($1, $2, $3, $4)
// ",
// )
// .bind(article.content_type)
// .bind(article.title)
// .bind(article.date)
// .bind(article.content)
// .execute(pool)
// .await?;
//
// // println!("{:?}", _res);
// }
// }
// }
// }
// }
//
// Ok(())
// }
pub async fn start_pool() -> Result<SqlitePool, ServerFnError> {
println!(
"
db goin up"
);
let pool = SqlitePool::connect("sqlite::memory:").await?;
let _res = query( let _res = query(
" "
CREATE TABLE CREATE TABLE
@ -15,7 +108,7 @@ pub async fn db_build(pool: &SqlitePool) -> Result<(), ServerFnError> {
) )
", ",
) )
.execute(pool) .execute(&pool)
.await?; .await?;
// println!("{:?}", _res); // println!("{:?}", _res);
@ -63,7 +156,7 @@ pub async fn db_build(pool: &SqlitePool) -> Result<(), ServerFnError> {
.bind(article.title) .bind(article.title)
.bind(article.date) .bind(article.date)
.bind(article.content) .bind(article.content)
.execute(pool) .execute(&pool)
.await?; .await?;
// println!("{:?}", _res); // println!("{:?}", _res);
@ -73,28 +166,5 @@ pub async fn db_build(pool: &SqlitePool) -> Result<(), ServerFnError> {
} }
} }
Ok(()) Ok(pool)
}
pub async fn start_pool() -> Result<SqlitePool, ServerFnError> {
println!(
"
db goin up"
);
Ok(SqlitePool::connect("sqlite::memory:").await?)
} }

View file

@ -16,7 +16,6 @@ async fn main() {
let routes = generate_route_list(App); let routes = generate_route_list(App);
let pool = start_pool().await.expect("pool error"); let pool = start_pool().await.expect("pool error");
let _ = db_build(&pool).await.expect("build error");
let app = Router::new() let app = Router::new()
.leptos_routes_with_context( .leptos_routes_with_context(