use axum::routing::{get, post}; use axum::{ extract::{Path, State}, http::StatusCode, Json, Router, }; use axum_macros::debug_handler; use sea_orm::ColumnTrait; use sea_orm::{entity::*, query::*,}; use crate::model::db::prelude::Book; use crate::model::db::book::Model as BookModel; use crate::model::db::book::Column as BookColumn; use crate::model::http_body::book; use crate::AppState; use crate::model::http_body::book::BookItem; pub fn get_nest_handlers() -> Router { Router::new() .route("/", get(get_all_books_handler)) // .route("/{id}", post(update_book).get(get_book)) } // handlers // #[debug_handler] async fn get_all_books_handler( state: State ) -> Result>,(StatusCode,String)> { // let conn = state.conn.get_postgres_connection_pool(); let uid :i64 = 1; let all_books = Book::find() .filter(BookColumn::Uid.eq(uid)) .all(&state.conn) .await .map_err(|e| (StatusCode::INTERNAL_SERVER_ERROR,e.to_string()))?; let mut books: Vec = Vec::new(); for b in all_books { let book_resp = BookItem{ id: b.id, name: b.name, }; books.push(book_resp); } Ok(Json(books)) }