use ::entity::{note, note::Entity as Note}; use sea_orm::*; pub struct Query; impl Query { pub async fn find_note_by_id(db: &DbConn, id: i32) -> Result, DbErr> { Note::find_by_id(id).one(db).await } pub async fn get_all_notes(db: &DbConn) -> Result, DbErr> { Note::find().all(db).await } /// If ok, returns (note models, num pages). pub async fn find_notes_in_page( db: &DbConn, page: u64, notes_per_page: u64, ) -> Result<(Vec, u64), DbErr> { // Setup paginator let paginator = Note::find() .order_by_asc(note::Column::Id) .paginate(db, notes_per_page); let num_pages = paginator.num_pages().await?; // Fetch paginated notes paginator.fetch_page(page - 1).await.map(|p| (p, num_pages)) } }