a
This commit is contained in:
@@ -279,68 +279,6 @@ pub struct TeamsSearchQueryDto {
|
|||||||
pub per_page: Option<i64>,
|
pub per_page: Option<i64>,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl TeamsDetailQueryDto {
|
|
||||||
pub fn from(self) -> Self {
|
|
||||||
self
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
impl TeamsListQueryDto {
|
|
||||||
pub fn from(self) -> TeamsListItemDto {
|
|
||||||
TeamsListItemDto {
|
|
||||||
id: self.id.id.to_raw(),
|
|
||||||
name: self.name,
|
|
||||||
description: self.description,
|
|
||||||
leader: TeamMemberDto {
|
|
||||||
id: String::new(),
|
|
||||||
user_id: self.leader_id.id.to_raw(),
|
|
||||||
fullname: String::new(),
|
|
||||||
email: None,
|
|
||||||
avatar: None,
|
|
||||||
role: "leader".to_string(),
|
|
||||||
skills: None,
|
|
||||||
joined_at: self.created_at.clone(),
|
|
||||||
},
|
|
||||||
is_open: self.is_open,
|
|
||||||
current_member_count: 1,
|
|
||||||
max_members: self.max_members,
|
|
||||||
skills_required: self.skills_required,
|
|
||||||
location: self.location,
|
|
||||||
avatar: self.avatar,
|
|
||||||
created_at: self.created_at,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn to_admin_list_dto(self) -> AdminTeamsListItemDto {
|
|
||||||
let members = vec![];
|
|
||||||
AdminTeamsListItemDto {
|
|
||||||
id: self.id.id.to_raw(),
|
|
||||||
name: self.name,
|
|
||||||
description: self.description,
|
|
||||||
leader: TeamMemberDto {
|
|
||||||
id: String::new(),
|
|
||||||
user_id: self.leader_id.id.to_raw(),
|
|
||||||
fullname: String::new(),
|
|
||||||
email: None,
|
|
||||||
avatar: None,
|
|
||||||
role: "leader".to_string(),
|
|
||||||
skills: None,
|
|
||||||
joined_at: self.created_at.clone(),
|
|
||||||
},
|
|
||||||
is_open: self.is_open,
|
|
||||||
current_member_count: members.len() as i32 + 1,
|
|
||||||
max_members: self.max_members,
|
|
||||||
skills_required: self.skills_required,
|
|
||||||
location: self.location,
|
|
||||||
avatar: self.avatar,
|
|
||||||
website_url: None,
|
|
||||||
github_url: None,
|
|
||||||
is_active: true,
|
|
||||||
is_deleted: false,
|
|
||||||
created_at: self.created_at,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#[derive(Clone, Debug, Serialize, Deserialize, ToSchema)]
|
#[derive(Clone, Debug, Serialize, Deserialize, ToSchema)]
|
||||||
pub struct AdminTeamsListItemDto {
|
pub struct AdminTeamsListItemDto {
|
||||||
pub id: String,
|
pub id: String,
|
||||||
@@ -381,9 +319,39 @@ pub struct AdminTeamsDetailItemDto {
|
|||||||
pub updated_at: String,
|
pub updated_at: String,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
impl TeamsDetailQueryDto {
|
||||||
|
pub fn into_detail_dto(self) -> Self {
|
||||||
|
self
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
impl TeamsListQueryDto {
|
impl TeamsListQueryDto {
|
||||||
pub fn to_admin_list_dto(self) -> AdminTeamsListItemDto {
|
pub fn into_list_item_dto(self) -> TeamsListItemDto {
|
||||||
let members = vec![];
|
TeamsListItemDto {
|
||||||
|
id: self.id.id.to_raw(),
|
||||||
|
name: self.name,
|
||||||
|
description: self.description,
|
||||||
|
leader: TeamMemberDto {
|
||||||
|
id: String::new(),
|
||||||
|
user_id: self.leader_id.id.to_raw(),
|
||||||
|
fullname: String::new(),
|
||||||
|
email: None,
|
||||||
|
avatar: None,
|
||||||
|
role: "leader".to_string(),
|
||||||
|
skills: None,
|
||||||
|
joined_at: self.created_at.clone(),
|
||||||
|
},
|
||||||
|
is_open: self.is_open,
|
||||||
|
current_member_count: 1,
|
||||||
|
max_members: self.max_members,
|
||||||
|
skills_required: self.skills_required,
|
||||||
|
location: self.location,
|
||||||
|
avatar: self.avatar,
|
||||||
|
created_at: self.created_at,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn into_admin_list_dto(self) -> AdminTeamsListItemDto {
|
||||||
AdminTeamsListItemDto {
|
AdminTeamsListItemDto {
|
||||||
id: self.id.id.to_raw(),
|
id: self.id.id.to_raw(),
|
||||||
name: self.name,
|
name: self.name,
|
||||||
@@ -399,7 +367,7 @@ impl TeamsListQueryDto {
|
|||||||
joined_at: self.created_at.clone(),
|
joined_at: self.created_at.clone(),
|
||||||
},
|
},
|
||||||
is_open: self.is_open,
|
is_open: self.is_open,
|
||||||
current_member_count: members.len() as i32 + 1,
|
current_member_count: 1, // Placeholder; adjust based on actual member count
|
||||||
max_members: self.max_members,
|
max_members: self.max_members,
|
||||||
skills_required: self.skills_required,
|
skills_required: self.skills_required,
|
||||||
location: self.location,
|
location: self.location,
|
||||||
@@ -414,7 +382,7 @@ impl TeamsListQueryDto {
|
|||||||
}
|
}
|
||||||
|
|
||||||
impl TeamsDetailQueryDto {
|
impl TeamsDetailQueryDto {
|
||||||
pub fn to_admin_detail_dto(self, members: Vec<TeamMemberDto>) -> AdminTeamsDetailItemDto {
|
pub fn into_admin_detail_dto(self, members: Vec<TeamMemberDto>) -> AdminTeamsDetailItemDto {
|
||||||
AdminTeamsDetailItemDto {
|
AdminTeamsDetailItemDto {
|
||||||
id: self.id.id.to_raw(),
|
id: self.id.id.to_raw(),
|
||||||
name: self.name,
|
name: self.name,
|
||||||
@@ -445,4 +413,3 @@ impl TeamsDetailQueryDto {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
@@ -759,6 +759,11 @@ impl TeamsServiceTrait for TeamsService {
|
|||||||
};
|
};
|
||||||
success_list_response(response)
|
success_list_response(response)
|
||||||
}
|
}
|
||||||
|
Err(e) => common_response(StatusCode::BAD_REQUEST, &e.to_string()),
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
fn get_admin_team_list(state: &AppState, meta: MetaRequestDto) -> Pin<Box<dyn Future<Output = Response> + Send>> {
|
fn get_admin_team_list(state: &AppState, meta: MetaRequestDto) -> Pin<Box<dyn Future<Output = Response> + Send>> {
|
||||||
let state = state.to_owned();
|
let state = state.to_owned();
|
||||||
Box::pin(async move {
|
Box::pin(async move {
|
||||||
|
|||||||
Reference in New Issue
Block a user