29 lines
721 B
Rust
29 lines
721 B
Rust
use actix_web::{HttpRequest, Responder};
|
|
use sea_orm::*;
|
|
use serde::{Deserialize, Serialize};
|
|
|
|
use super::AppState;
|
|
|
|
use super::model::prelude::*;
|
|
|
|
#[derive(Debug, Deserialize)]
|
|
pub struct Params {
|
|
page: Option<usize>,
|
|
posts_per_page: Option<usize>,
|
|
}
|
|
|
|
#[actix_web::get("/")]
|
|
async fn index_page(
|
|
req: HttpRequest,
|
|
data: actix_web::web::Data<AppState>,
|
|
) -> Result<impl Responder, Box<dyn std::error::Error>> {
|
|
let params = actix_web::web::Query::<Params>::from_query(req.query_string()).unwrap();
|
|
|
|
let users = User::find()
|
|
.paginate(&data.database, params.posts_per_page.unwrap_or(10))
|
|
.fetch_page(params.page.unwrap_or(0))
|
|
.await?;
|
|
|
|
Ok(actix_web::web::Json(users))
|
|
}
|