use crate::{datasources::comments::CommentsDatasource, AppState}; use axum::{ extract::{Form, State}, routing::{get, post}, Json, }; use serde::Deserialize; use sqlx::PgPool; #[derive(Deserialize, Debug)] pub struct CommentInput { name: String, body: String, post_id: i32, } pub struct CommentsRoute; impl CommentsRoute { pub fn routes(app_state: &AppState) -> axum::Router { // add more comment routes here! axum::Router::new() .route("/post/:id", get(CommentsRoute::get_post_comments)) .route("/add", post(CommentsRoute::insert_comment)) .with_state(app_state.db) } async fn get_post_comments(State(pool): State) -> Json<()> { let results = CommentsDatasource::get_posts_comments(pool).await; Json {} } async fn insert_comment( State(pool): State, Form(comment_input): Form, ) -> bool { let results = CommentsDatasource::insert_comment(pool, comment_input).await; true } }