holy shit what the fuck am i doing
This commit is contained in:
commit
4b4122267a
6
.gitignore
vendored
Normal file
6
.gitignore
vendored
Normal file
|
@ -0,0 +1,6 @@
|
|||
*.sqlite*
|
||||
.env
|
||||
|
||||
# Added by cargo
|
||||
|
||||
/target
|
|
@ -0,0 +1,32 @@
|
|||
{
|
||||
"db_name": "SQLite",
|
||||
"query": "SELECT id, name, content FROM comments",
|
||||
"describe": {
|
||||
"columns": [
|
||||
{
|
||||
"name": "id",
|
||||
"ordinal": 0,
|
||||
"type_info": "Int64"
|
||||
},
|
||||
{
|
||||
"name": "name",
|
||||
"ordinal": 1,
|
||||
"type_info": "Text"
|
||||
},
|
||||
{
|
||||
"name": "content",
|
||||
"ordinal": 2,
|
||||
"type_info": "Text"
|
||||
}
|
||||
],
|
||||
"parameters": {
|
||||
"Right": 0
|
||||
},
|
||||
"nullable": [
|
||||
false,
|
||||
true,
|
||||
false
|
||||
]
|
||||
},
|
||||
"hash": "028ae30edade84a65cc41385416f2233cc74bbaeececa1cf4ff097a9adcbe701"
|
||||
}
|
2912
Cargo.lock
generated
Normal file
2912
Cargo.lock
generated
Normal file
File diff suppressed because it is too large
Load diff
12
Cargo.toml
Normal file
12
Cargo.toml
Normal file
|
@ -0,0 +1,12 @@
|
|||
[package]
|
||||
name = "comments"
|
||||
version = "0.1.0"
|
||||
edition = "2021"
|
||||
|
||||
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
||||
|
||||
[dependencies]
|
||||
anyhow = "1.0.82"
|
||||
async-std = { version = "1.12.0", features = ["attributes"] }
|
||||
rocket = "0.5.0"
|
||||
sqlx = { version = "0.7", features = ["runtime-async-std", "sqlite", "migrate"] }
|
6
migrations/20240415053921_create-table-comments.sql
Normal file
6
migrations/20240415053921_create-table-comments.sql
Normal file
|
@ -0,0 +1,6 @@
|
|||
CREATE TABLE IF NOT EXISTS comments
|
||||
(
|
||||
id INTEGER PRIMARY KEY NOT NULL,
|
||||
name TEXT,
|
||||
content TEXT NOT NULL
|
||||
);
|
43
src/main.rs
Normal file
43
src/main.rs
Normal file
|
@ -0,0 +1,43 @@
|
|||
use sqlx::SqlitePool;
|
||||
use std::env;
|
||||
|
||||
#[rocket::launch]
|
||||
async fn rocket() -> _ {
|
||||
println!("Hello, world!");
|
||||
|
||||
let db_url = env::var("DATABASE_URL").expect("DATABASE_URL is required");
|
||||
let pool = SqlitePool::connect(&db_url)
|
||||
.await
|
||||
.expect("Failed to connect to database");
|
||||
rocket::build()
|
||||
.manage(pool)
|
||||
.mount("/", rocket::routes![index, add])
|
||||
}
|
||||
|
||||
#[rocket::get("/")]
|
||||
async fn index(pool: &rocket::State<SqlitePool>) -> String {
|
||||
let records = sqlx::query!("SELECT id, name, content FROM comments")
|
||||
.fetch_all(pool.inner())
|
||||
.await
|
||||
.expect("what the fuck");
|
||||
|
||||
let mut result = "yeetus\n".to_owned();
|
||||
for rec in records {
|
||||
result += &format!(
|
||||
"- {}: {}\n",
|
||||
rec.name.unwrap_or("anonymous".to_owned()),
|
||||
rec.content
|
||||
);
|
||||
}
|
||||
result
|
||||
}
|
||||
|
||||
#[rocket::get("/add")]
|
||||
async fn add(pool: &rocket::State<SqlitePool>) -> &str {
|
||||
sqlx::query!("INSERT INTO comments (content) VALUES (\"hi\")")
|
||||
.execute(pool.inner())
|
||||
.await
|
||||
.expect("ajkl;shfklshadflgksdfg");
|
||||
|
||||
"neat ok"
|
||||
}
|
Loading…
Reference in a new issue