22 lines
627 B
Rust
22 lines
627 B
Rust
use actix_web::{get, web::Data, HttpRequest, HttpResponse};
|
|
use askama::Template;
|
|
|
|
use super::{tcx::TemplateCtx, template_response};
|
|
use crate::{ctx::Ctx, db::models::NewsPost, error::NekrochanError, filters};
|
|
|
|
#[derive(Template)]
|
|
#[template(path = "news.html")]
|
|
struct NewsTemplate {
|
|
tcx: TemplateCtx,
|
|
news: Vec<NewsPost>,
|
|
}
|
|
|
|
#[get("/news")]
|
|
pub async fn news(ctx: Data<Ctx>, req: HttpRequest) -> Result<HttpResponse, NekrochanError> {
|
|
let tcx = TemplateCtx::new(&ctx, &req).await?;
|
|
let news = NewsPost::read_all(&ctx).await?;
|
|
let template = NewsTemplate { tcx, news };
|
|
|
|
template_response(&template)
|
|
}
|