Refactor rocket example

This commit is contained in:
Billy Chan 2021-09-20 15:15:39 +08:00 committed by Chris Tsang
parent b22753bebf
commit ce35317daf
3 changed files with 16 additions and 21 deletions

View File

@ -122,7 +122,6 @@ async fn list(
let paginator = Post::find() let paginator = Post::find()
.order_by_asc(post::Column::Id) .order_by_asc(post::Column::Id)
.paginate(&conn, posts_per_page); .paginate(&conn, posts_per_page);
let num_pages = paginator.num_pages().await.ok().unwrap();
// Fetch paginated posts // Fetch paginated posts
let posts = paginator let posts = paginator
@ -130,16 +129,14 @@ async fn list(
.await .await
.expect("could not retrieve posts"); .expect("could not retrieve posts");
let flash = flash.map(FlashMessage::into_inner);
Template::render( Template::render(
"index", "index",
context! { context! {
posts: posts,
flash: flash,
page: page, page: page,
posts_per_page: posts_per_page, posts_per_page: posts_per_page,
num_pages: num_pages, posts: posts,
flash: flash.map(FlashMessage::into_inner),
num_pages: paginator.num_pages().await.ok().unwrap(),
}, },
) )
} }

View File

@ -79,28 +79,29 @@ async fn list(
page: Option<usize>, page: Option<usize>,
flash: Option<FlashMessage<'_>>, flash: Option<FlashMessage<'_>>,
) -> Template { ) -> Template {
// Set page number and items per page
let page = page.unwrap_or(0); let page = page.unwrap_or(0);
let posts_per_page = posts_per_page.unwrap_or(DEFAULT_POSTS_PER_PAGE); let posts_per_page = posts_per_page.unwrap_or(DEFAULT_POSTS_PER_PAGE);
// Setup paginator
let paginator = Post::find() let paginator = Post::find()
.order_by_asc(post::Column::Id) .order_by_asc(post::Column::Id)
.paginate(&conn, posts_per_page); .paginate(&conn, posts_per_page);
let num_pages = paginator.num_pages().await.ok().unwrap();
// Fetch paginated posts
let posts = paginator let posts = paginator
.fetch_page(page) .fetch_page(page)
.await .await
.expect("could not retrieve posts"); .expect("could not retrieve posts");
let flash = flash.map(FlashMessage::into_inner);
Template::render( Template::render(
"index", "index",
context! { context! {
posts: posts,
flash: flash,
page: page, page: page,
posts_per_page: posts_per_page, posts_per_page: posts_per_page,
num_pages: num_pages, posts: posts,
flash: flash.map(FlashMessage::into_inner),
num_pages: paginator.num_pages().await.ok().unwrap(),
}, },
) )
} }

View File

@ -186,7 +186,6 @@
//! let paginator = Post::find() //! let paginator = Post::find()
//! .order_by_asc(post::Column::Id) //! .order_by_asc(post::Column::Id)
//! .paginate(&conn, posts_per_page); //! .paginate(&conn, posts_per_page);
//! let num_pages = paginator.num_pages().await.ok().unwrap();
//! //!
//! // Fetch paginated posts //! // Fetch paginated posts
//! let posts = paginator //! let posts = paginator
@ -194,16 +193,14 @@
//! .await //! .await
//! .expect("could not retrieve posts"); //! .expect("could not retrieve posts");
//! //!
//! let flash = flash.map(FlashMessage::into_inner);
//!
//! Template::render( //! Template::render(
//! "index", //! "index",
//! context! { //! context! {
//! posts: posts,
//! flash: flash,
//! page: page, //! page: page,
//! posts_per_page: posts_per_page, //! posts_per_page: posts_per_page,
//! num_pages: num_pages, //! posts: posts,
//! flash: flash.map(FlashMessage::into_inner),
//! num_pages: paginator.num_pages().await.ok().unwrap(),
//! }, //! },
//! ) //! )
//! } //! }