(
conn: Connection<Db>,
page: Option<u64>,
posts_per_page: Option<u64>,
)
| 76 | #[openapi(tag = "POST")] |
| 77 | #[get("/?<page>&<posts_per_page>")] |
| 78 | async fn list( |
| 79 | conn: Connection<Db>, |
| 80 | page: Option<u64>, |
| 81 | posts_per_page: Option<u64>, |
| 82 | ) -> R<dto::PostsDto> { |
| 83 | let db = conn.into_inner(); |
| 84 | |
| 85 | // Set page number and items per page |
| 86 | let page = page.unwrap_or(1); |
| 87 | let posts_per_page = posts_per_page.unwrap_or(DEFAULT_POSTS_PER_PAGE); |
| 88 | if page == 0 { |
| 89 | let m = error::Error { |
| 90 | err: "error getting posts".to_string(), |
| 91 | msg: Some("'page' param cannot be zero".to_string()), |
| 92 | http_status_code: 400, |
| 93 | }; |
| 94 | return Err(m); |
| 95 | } |
| 96 | |
| 97 | let (posts, num_pages) = Query::find_posts_in_page(&db, page, posts_per_page) |
| 98 | .await |
| 99 | .expect("Cannot find posts in page"); |
| 100 | |
| 101 | Ok(Json(dto::PostsDto { |
| 102 | page, |
| 103 | posts_per_page, |
| 104 | num_pages, |
| 105 | posts, |
| 106 | })) |
| 107 | } |
| 108 | |
| 109 | /// # get post by Id |
| 110 | #[openapi(tag = "POST")] |
nothing calls this directly
no test coverage detected