2022-08-06 11:56:43 +08:00

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))
}