summaryrefslogtreecommitdiffstats
path: root/src/routes/mod.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/routes/mod.rs')
-rw-r--r--src/routes/mod.rs48
1 files changed, 38 insertions, 10 deletions
diff --git a/src/routes/mod.rs b/src/routes/mod.rs
index 629a4d7..a6e87f4 100644
--- a/src/routes/mod.rs
+++ b/src/routes/mod.rs
@@ -3,9 +3,11 @@ use std::borrow::Cow;
use std::sync::Arc;
use crate::components::{
- Comment, Content, HTPage, MaybeFillInput, MaybeFillTextArea, PostItem, UserLink,
+ Comment, Content, HTPage, MaybeFillInput, MaybeFillTextArea, PostItem, ThingItem, UserLink,
+};
+use crate::resp_types::{
+ RespMinimalAuthorInfo, RespPostCommentInfo, RespPostListPost, RespThingInfo,
};
-use crate::resp_types::{RespMinimalAuthorInfo, RespPostCommentInfo, RespPostListPost};
use crate::util::author_is_me;
use crate::PageBaseData;
@@ -884,7 +886,7 @@ async fn page_user(
let base_data = fetch_base_data(&ctx.backend_host, &ctx.http_client, &cookies).await?;
- let api_res = res_to_error(
+ let user = res_to_error(
ctx.http_client
.request(
hyper::Request::get(format!(
@@ -896,18 +898,44 @@ async fn page_user(
.await?,
)
.await?;
+ let user = hyper::body::to_bytes(user.into_body()).await?;
+ let user: RespMinimalAuthorInfo<'_> = serde_json::from_slice(&user)?;
- let api_res = hyper::body::to_bytes(api_res.into_body()).await?;
- let user: RespMinimalAuthorInfo<'_> = serde_json::from_slice(&api_res)?;
+ let things = res_to_error(
+ ctx.http_client
+ .request(
+ hyper::Request::get(format!(
+ "{}/api/unstable/users/{}/things",
+ ctx.backend_host, user_id,
+ ))
+ .body(Default::default())?,
+ )
+ .await?,
+ )
+ .await?;
+ let things = hyper::body::to_bytes(things.into_body()).await?;
+ let things: Vec<RespThingInfo> = serde_json::from_slice(&things)?;
let title = user.username.as_ref();
Ok(html_response(render::html! {
<HTPage base_data={&base_data} title>
<h1>{title}</h1>
- <p>
- <em>{"User post listing is not currently implemented."}</em>
- </p>
+ {
+ if things.is_empty() {
+ Some(render::rsx! { <p>{"Looks like there's nothing here."}</p> })
+ } else {
+ None
+ }
+ }
+ <ul>
+ {
+ things.iter().map(|thing| {
+ ThingItem { thing }
+ })
+ .collect::<Vec<_>>()
+ }
+ </ul>
</HTPage>
}))
}
@@ -959,7 +987,7 @@ async fn page_home(
}
<ul>
{api_res.iter().map(|post| {
- PostItem { post, in_community: false }
+ PostItem { post, in_community: false, no_user: false }
}).collect::<Vec<_>>()}
</ul>
</HTPage>
@@ -1013,7 +1041,7 @@ async fn page_all_inner(
}
<ul>
{api_res.iter().map(|post| {
- PostItem { post, in_community: false }
+ PostItem { post, in_community: false, no_user: false }
}).collect::<Vec<_>>()}
</ul>
</HTPage>