31 lines
1.1 KiB
Rust
31 lines
1.1 KiB
Rust
use crate::entity::la_article;
|
|
use crate::params::article::{ArticleDetailParams, ArticleListParams};
|
|
use crate::state::app::AppState;
|
|
use axum::extract::{Query, State};
|
|
use axum::Json;
|
|
use chrono::{TimeZone, Utc};
|
|
use sea_orm::{ColumnTrait, EntityTrait, PaginatorTrait, QueryFilter, QueryOrder, QueryTrait};
|
|
use serde_json::{json, Value};
|
|
use std::fmt::Debug;
|
|
use std::sync::Arc;
|
|
|
|
use crate::response::article::{ArticleDetail, ArticleListItem};
|
|
use crate::response::common::{BaseResponse, PageResponse};
|
|
use crate::service::artile::ArticleService;
|
|
|
|
pub async fn article_list(
|
|
State(state): State<Arc<AppState>>,
|
|
query: Query<ArticleListParams>,
|
|
) -> Result<Json<BaseResponse<PageResponse<ArticleListItem>>>, Json<BaseResponse<Vec<u8>>>> {
|
|
let article_service = ArticleService { state };
|
|
article_service.article_list(query.0).await
|
|
}
|
|
|
|
pub async fn article_detail(
|
|
State(state): State<Arc<AppState>>,
|
|
query: Query<ArticleDetailParams>,
|
|
) -> Result<Json<BaseResponse<ArticleDetail>>, Json<BaseResponse<Vec<u8>>>> {
|
|
let article_service = ArticleService { state };
|
|
article_service.article_detail(query.0).await
|
|
}
|