Refactor posts parsing and begin add tags
This commit is contained in:
parent
9cd7029ede
commit
51f34eb290
13 changed files with 146 additions and 282 deletions
|
@ -10,23 +10,38 @@ use crate::app::{
|
|||
|
||||
#[server]
|
||||
pub async fn get_posts() -> Result<Vec<Post>, ServerFnError> {
|
||||
let posts = Post::get_all("posts")
|
||||
.map_err(|e| ServerFnError::ServerError(e.to_string()))?;
|
||||
|
||||
Ok(posts)
|
||||
leptos_actix::extract(
|
||||
|data: actix_web::web::Data<crate::app::models::Data>| async move {
|
||||
let data = data.into_inner();
|
||||
data.posts
|
||||
.iter()
|
||||
.map(|post| {
|
||||
Post {
|
||||
metadata: post.metadata.clone(),
|
||||
content: post.content.clone(),
|
||||
}
|
||||
})
|
||||
.collect::<Vec<_>, >()
|
||||
},
|
||||
).await
|
||||
}
|
||||
|
||||
#[server]
|
||||
pub async fn get_post(
|
||||
slug: String
|
||||
) -> Result<Post, ServerFnError> {
|
||||
let posts = Post::get_all("posts")
|
||||
.map_err(|e| ServerFnError::ServerError(e.to_string()))?;
|
||||
|
||||
let post = posts.into_iter().find(|post| post.slug == slug)
|
||||
.ok_or(ServerFnError::ServerError("Post not found".to_string()))?;
|
||||
|
||||
Ok(post)
|
||||
leptos_actix::extract(
|
||||
|data: actix_web::web::Data<crate::app::models::Data>| async move {
|
||||
let data = data.into_inner();
|
||||
data.posts_by_slug.get(&slug)
|
||||
.and_then(|post| Some(Post {
|
||||
metadata: post.metadata.clone(),
|
||||
content: post.content.clone(),
|
||||
}))
|
||||
},
|
||||
)
|
||||
.await
|
||||
.and_then(|post| post.ok_or_else(|| ServerFnError::ServerError("Post not found".to_string())))
|
||||
}
|
||||
|
||||
#[component]
|
||||
|
@ -37,7 +52,7 @@ pub fn PostList() -> impl IntoView {
|
|||
posts.and_then(|posts| {
|
||||
posts.iter()
|
||||
.map(|post| view! {
|
||||
<a href=format!("posts/{}", post.slug.clone())>
|
||||
<a href=format!("posts/{}", post.metadata.slug.clone())>
|
||||
<img src={post.metadata.image_path.clone()} alt=format!("Image {}", post.metadata.title)/>
|
||||
|
||||
{
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue