generated from t/malachite
add: user profiles and junk
This commit is contained in:
parent
6b8c33d27f
commit
2bd23f8214
28 changed files with 1139 additions and 108 deletions
|
@ -27,6 +27,10 @@ pub async fn list_request(
|
|||
}
|
||||
};
|
||||
|
||||
if let Err(e) = data.2.update_user_missed_messages_count(user.id, 0).await {
|
||||
return Err(render_error(e, tera, data.0.0.clone(), Some(user)).await);
|
||||
}
|
||||
|
||||
let chats = match data.get_chats_by_member(user.id, 12, props.page).await {
|
||||
Ok(x) => data.fill_chats(x).await,
|
||||
Err(e) => {
|
||||
|
@ -182,3 +186,42 @@ pub async fn read_receipt_request(
|
|||
ctx.insert("chat", &chat);
|
||||
Ok(Html(tera.render("read_receipt.lisp", &ctx).unwrap()))
|
||||
}
|
||||
|
||||
pub async fn manage_chat_request(
|
||||
jar: CookieJar,
|
||||
Extension(data): Extension<State>,
|
||||
Path(id): Path<usize>,
|
||||
) -> impl IntoResponse {
|
||||
let (ref data, ref tera, ref build_code) = *data.read().await;
|
||||
let user = match get_user_from_token!(jar, data.2) {
|
||||
Some(x) => x,
|
||||
None => {
|
||||
return Err(render_error(Error::NotAllowed, tera, data.0.0.clone(), None).await);
|
||||
}
|
||||
};
|
||||
|
||||
let (chat, members) = match data.get_chat_by_id(id).await {
|
||||
Ok(x) => {
|
||||
if !x.members.contains(&user.id) {
|
||||
return Err(
|
||||
render_error(Error::NotAllowed, tera, data.0.0.clone(), Some(user)).await,
|
||||
);
|
||||
}
|
||||
|
||||
data.fill_chat(x).await
|
||||
}
|
||||
Err(e) => {
|
||||
return Err(render_error(e, tera, data.0.0.clone(), Some(user)).await);
|
||||
}
|
||||
};
|
||||
|
||||
let is_owner = chat.owner() == user.id;
|
||||
|
||||
let mut ctx = default_context(&data.0.0, &build_code, &Some(user));
|
||||
|
||||
ctx.insert("chat", &chat);
|
||||
ctx.insert("members", &members);
|
||||
ctx.insert("is_owner", &is_owner);
|
||||
|
||||
Ok(Html(tera.render("manage.lisp", &ctx).unwrap()))
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue