mirror of
https://github.com/supleed2/cch23-8bit.git
synced 2024-12-22 14:05:48 +00:00
Day 5
This commit is contained in:
parent
6b5c90729d
commit
7c3030c8ca
33
src/cal/day05.rs
Normal file
33
src/cal/day05.rs
Normal file
|
@ -0,0 +1,33 @@
|
|||
use axum::{
|
||||
extract::Query,
|
||||
response::{IntoResponse, Response},
|
||||
routing::post,
|
||||
Json, Router,
|
||||
};
|
||||
|
||||
pub(crate) fn router() -> Router {
|
||||
Router::new().route("/5", post(five))
|
||||
}
|
||||
|
||||
#[derive(serde::Deserialize)]
|
||||
struct Pagination {
|
||||
offset: Option<usize>,
|
||||
limit: Option<usize>,
|
||||
split: Option<usize>,
|
||||
}
|
||||
|
||||
async fn five(Query(pagination): Query<Pagination>, Json(names): Json<Vec<String>>) -> Response {
|
||||
let offset = pagination.offset.unwrap_or(0);
|
||||
let limit = pagination.limit.unwrap_or(names.len());
|
||||
let names = names
|
||||
.into_iter()
|
||||
.skip(offset)
|
||||
.take(limit)
|
||||
.collect::<Vec<_>>();
|
||||
if let Some(split) = pagination.split {
|
||||
let names = names.chunks(split).map(|a| a.to_vec()).collect::<Vec<_>>();
|
||||
Json(names).into_response()
|
||||
} else {
|
||||
Json(names).into_response()
|
||||
}
|
||||
}
|
|
@ -1,6 +1,7 @@
|
|||
mod day00;
|
||||
mod day01;
|
||||
mod day04;
|
||||
mod day05;
|
||||
mod day06;
|
||||
mod day07;
|
||||
mod day08;
|
||||
|
@ -18,6 +19,7 @@ pub(crate) fn router(pool: sqlx::PgPool) -> axum::Router {
|
|||
.nest("/", day00::router())
|
||||
.nest("/", day01::router())
|
||||
.nest("/", day04::router())
|
||||
.nest("/", day05::router())
|
||||
.nest("/", day06::router())
|
||||
.nest("/", day07::router())
|
||||
.nest("/", day08::router())
|
||||
|
|
Loading…
Reference in a new issue