diff --git a/back/Cargo.toml b/back/Cargo.toml index 731f030..6be9ee0 100644 --- a/back/Cargo.toml +++ b/back/Cargo.toml @@ -7,6 +7,6 @@ edition = "2021" actix-files = "0.6.6" actix-web = "4" sqlite = "0.36.1" -serde = "1.0.215" +serde = { version = "1.0", features = ["derive"] } serde_json = "1.0.133" diff --git a/back/src/main.rs b/back/src/main.rs index a91bc15..b5d5697 100644 --- a/back/src/main.rs +++ b/back/src/main.rs @@ -1,7 +1,33 @@ -use actix_web::{App, HttpServer, get, Responder, HttpResponse, http::header::ContentType}; use actix_files::Files; -use serde_json::json; +use actix_web::{get, http, post, web, App, HttpResponse, HttpServer, Responder}; use sqlite::{Connection, State, Error}; +use serde::{Serialize, Deserialize}; + +#[actix_web::main] +async fn main() -> Result<(), std::io::Error> { + let conn = Connection::open("./data/data.db"); + + HttpServer::new(|| { + App::new() + .service(hello) + .service(get_articles) + .service(Files::new("/", "./public").index_file("index.html")) + }) + .bind(("0.0.0.0", 8080))? + .run() + .await +} + + +#[derive(serde::Serialize)] +struct Article { + id: i64, + title: String, + auteur: Option, + edited_at: Option, + published_at: Option, + content: String, +} #[get("/api/hello")] async fn hello() -> impl Responder { @@ -17,45 +43,16 @@ async fn get_articles() -> impl Responder { while let State::Row = stmt.next().unwrap() { let id = stmt.read::(0).unwrap(); let title = stmt.read::(1).unwrap(); - let subTitle = stmt.read::(2).unwrap(); let content = stmt.read::(3).unwrap(); - articles.push((id, title, subTitle, content)); + articles.push(Article { + id, + title, + auteur: None, + edited_at: None, + published_at: None, + content + }); } HttpResponse::Ok().json(articles) } - -#[get("/api")] -async fn api() -> impl Responder { - let value = json!({ - "code": 200, - "success": true, - "payload": { - "features": [ - "serde", - "json" - ], - "homepage": null - } - }); - HttpResponse::Ok() - .content_type(ContentType::json()) - .body(value.to_string()) -} - -#[actix_web::main] -async fn main() -> Result<(), std::io::Error> { - let conn = Connection::open("./data/data.db"); - - HttpServer::new(|| { - App::new() - .service(hello) - .service(get_articles) - .service(api) - .service(Files::new("/", "public").index_file("index.html")) - }) - .bind(("0.0.0.0", 8080))? - .run() - .await -} -