* Follows initial

* Fix #171, Fix #170, Fix #169, Fix #164

* More work on follows

* Fix compile error

* Upgrade meili version, add follows to search
This commit is contained in:
Geometrically
2021-03-04 20:35:23 -07:00
committed by GitHub
parent e46ff3de8b
commit 0ccb6cb873
25 changed files with 2298 additions and 782 deletions

View File

@@ -1,5 +1,7 @@
use crate::auth::get_user_from_headers;
use crate::database::models::notification_item::{NotificationActionBuilder, NotificationBuilder};
use crate::database::models::TeamMember;
use crate::models::ids::ModId;
use crate::models::teams::{Permissions, TeamId};
use crate::models::users::UserId;
use crate::routes::ApiError;
@@ -196,6 +198,39 @@ pub async fn add_team_member(
.await
.map_err(|e| ApiError::DatabaseError(e.into()))?;
let result = sqlx::query!(
"
SELECT m.title, m.id FROM mods m
WHERE m.team_id = $1
",
team_id as crate::database::models::ids::TeamId
)
.fetch_one(&**pool)
.await
.map_err(|e| ApiError::DatabaseError(e.into()))?;
let team: TeamId = team_id.into();
NotificationBuilder {
title: "You have been invited to join a team!".to_string(),
text: format!(
"Team invite from {} to join the team for mod {}",
current_user.username, result.title
),
link: format!("mod/{}", ModId(result.id as u64)),
actions: vec![
NotificationActionBuilder {
title: "Accept".to_string(),
action_route: format!("team/{}/join", team),
},
NotificationActionBuilder {
title: "Deny".to_string(),
action_route: format!("team/{}/members/{}", team, new_member.user_id),
},
],
}
.insert(new_member.user_id.into(), &mut transaction)
.await?;
transaction
.commit()
.await