mirror of
https://github.com/nitnelave/lldap.git
synced 2023-04-12 14:25:13 +00:00
new query for avatar
This commit is contained in:
parent
07aa010d10
commit
ed91e19b3e
5
app/queries/get_user_avatar.graphql
Normal file
5
app/queries/get_user_avatar.graphql
Normal file
@ -0,0 +1,5 @@
|
||||
query GetUserAvatar($id: String!) {
|
||||
user(userId: $id) {
|
||||
avatar
|
||||
}
|
||||
}
|
@ -6,14 +6,13 @@ use yew::prelude::*;
|
||||
#[derive(GraphQLQuery)]
|
||||
#[graphql(
|
||||
schema_path = "../schema.graphql",
|
||||
query_path = "queries/get_user_details.graphql",
|
||||
query_path = "queries/get_user_avatar.graphql",
|
||||
response_derives = "Debug, Hash, PartialEq, Eq, Clone",
|
||||
custom_scalars_module = "crate::infra::graphql"
|
||||
)]
|
||||
pub struct GetUserDetails;
|
||||
pub struct GetUserAvatar;
|
||||
|
||||
pub type User = get_user_details::GetUserDetailsUser;
|
||||
pub type Group = get_user_details::GetUserDetailsUserGroups;
|
||||
pub type User = get_user_avatar::GetUserAvatarUser;
|
||||
|
||||
pub struct Avatar {
|
||||
common: CommonComponentParts<Self>,
|
||||
@ -26,7 +25,7 @@ pub struct Avatar {
|
||||
/// It starts out by fetching the user's details from the backend when loading.
|
||||
pub enum Msg {
|
||||
/// Received the user details response, either the user data or an error.
|
||||
UserDetailsResponse(Result<get_user_details::ResponseData>),
|
||||
UserAvatarResponse(Result<get_user_avatar::ResponseData>),
|
||||
Update
|
||||
}
|
||||
|
||||
@ -40,14 +39,14 @@ pub struct Props {
|
||||
impl CommonComponent<Avatar> for Avatar {
|
||||
fn handle_msg(&mut self, msg: <Self as Component>::Message) -> Result<bool> {
|
||||
match msg {
|
||||
Msg::UserDetailsResponse(response) => match response {
|
||||
Msg::UserAvatarResponse(response) => match response {
|
||||
Ok(user) => self.avatar = user.user.avatar,
|
||||
Err(e) => {
|
||||
self.avatar = None;
|
||||
bail!("Error getting user details: {}", e);
|
||||
}
|
||||
},
|
||||
Msg::Update => self.get_user_details(),
|
||||
Msg::Update => self.get_user_avatar(),
|
||||
}
|
||||
Ok(true)
|
||||
}
|
||||
@ -58,14 +57,14 @@ impl CommonComponent<Avatar> for Avatar {
|
||||
}
|
||||
|
||||
impl Avatar {
|
||||
fn get_user_details(&mut self) {
|
||||
fn get_user_avatar(&mut self) {
|
||||
if self.common.username.len() > 0 {
|
||||
self.common.call_graphql::<GetUserDetails, _>(
|
||||
get_user_details::Variables {
|
||||
self.common.call_graphql::<GetUserAvatar, _>(
|
||||
get_user_avatar::Variables {
|
||||
id: self.common.username.clone(),
|
||||
},
|
||||
Msg::UserDetailsResponse,
|
||||
"Error trying to fetch user details",
|
||||
Msg::UserAvatarResponse,
|
||||
"Error trying to fetch user avatar",
|
||||
)
|
||||
}
|
||||
}
|
||||
@ -80,7 +79,7 @@ impl Component for Avatar {
|
||||
common: CommonComponentParts::<Self>::create(props, link),
|
||||
avatar: None,
|
||||
};
|
||||
avatar.get_user_details();
|
||||
avatar.get_user_avatar();
|
||||
avatar
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user