Added a method to get current members

This commit is contained in:
2025-02-11 20:34:47 +01:00
parent 06344541ae
commit 8758491938
4 changed files with 50 additions and 7 deletions

View File

@@ -1,13 +1,13 @@
use bitflags::bitflags;
use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize)]
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct Name {
pub first: String,
pub full: String,
}
#[derive(Debug, Clone, Serialize)]
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct Member {
pub id: String,
pub name: Name,

View File

@@ -1,4 +1,5 @@
use serde::Serialize;
use sqlx::PgPool;
#[derive(Serialize)]
pub struct User {
@@ -8,6 +9,10 @@ pub struct User {
}
use crate::database::model::User as DbUser;
use crate::database::model::UserMember as DbUserMember;
use crate::util::convert_vec;
use super::Member;
impl From<DbUser> for User {
fn from(db_user: DbUser) -> Self {
Self {
@@ -17,3 +22,11 @@ impl From<DbUser> for User {
}
}
}
impl User {
pub async fn members(&self, pool: &PgPool) -> Result<Vec<Member>, sqlx::Error> {
let related_members = DbUserMember::get_members_from_user(pool, &self.id).await?;
Ok(convert_vec(related_members))
}
}