Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
INSERT INTO notifications_types
(name, delivery_priority, expose_in_user_preferences, expose_in_site_notifications)
VALUES ('shared_instance_invite', 1, FALSE, TRUE);

INSERT INTO users_notifications_preferences (user_id, channel, notification_type, enabled)
VALUES (NULL, 'email', 'shared_instance_invite', FALSE);
14 changes: 14 additions & 0 deletions apps/labrinth/src/models/v2/notifications.rs
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,10 @@ pub enum LegacyNotificationBody {
invited_by: UserId,
role: String,
},
SharedInstanceInvite {
shared_instance_id: String,
shared_instance_name: String,
},
StatusChange {
project_id: ProjectId,
old_status: ProjectStatus,
Expand Down Expand Up @@ -177,6 +181,9 @@ impl LegacyNotification {
NotificationBody::ServerInvite { .. } => {
Some("server_invite".to_string())
}
NotificationBody::SharedInstanceInvite { .. } => {
Some("shared_instance_invite".to_string())
}
NotificationBody::StatusChange { .. } => {
Some("status_change".to_string())
}
Expand Down Expand Up @@ -294,6 +301,13 @@ impl LegacyNotification {
invited_by,
role,
},
NotificationBody::SharedInstanceInvite {
shared_instance_id,
shared_instance_name,
} => LegacyNotificationBody::SharedInstanceInvite {
shared_instance_id,
shared_instance_name,
},
NotificationBody::StatusChange {
project_id,
old_status,
Expand Down
36 changes: 36 additions & 0 deletions apps/labrinth/src/models/v3/notifications.rs
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@ pub enum NotificationType {
TeamInvite,
OrganizationInvite,
ServerInvite,
SharedInstanceInvite,
StatusChange,
ModeratorMessage,
LegacyMarkdown,
Expand Down Expand Up @@ -71,6 +72,7 @@ impl NotificationType {
NotificationType::TeamInvite => "team_invite",
NotificationType::OrganizationInvite => "organization_invite",
NotificationType::ServerInvite => "server_invite",
NotificationType::SharedInstanceInvite => "shared_instance_invite",
NotificationType::StatusChange => "status_change",
NotificationType::ModeratorMessage => "moderator_message",
NotificationType::LegacyMarkdown => "legacy_markdown",
Expand Down Expand Up @@ -112,6 +114,7 @@ impl NotificationType {
"team_invite" => NotificationType::TeamInvite,
"organization_invite" => NotificationType::OrganizationInvite,
"server_invite" => NotificationType::ServerInvite,
"shared_instance_invite" => NotificationType::SharedInstanceInvite,
"status_change" => NotificationType::StatusChange,
"moderator_message" => NotificationType::ModeratorMessage,
"legacy_markdown" => NotificationType::LegacyMarkdown,
Expand Down Expand Up @@ -173,6 +176,10 @@ pub enum NotificationBody {
invited_by: UserId,
role: String,
},
SharedInstanceInvite {
shared_instance_id: String,
shared_instance_name: String,
},
StatusChange {
project_id: ProjectId,
old_status: ProjectStatus,
Expand Down Expand Up @@ -288,6 +295,9 @@ impl NotificationBody {
NotificationBody::ServerInvite { .. } => {
NotificationType::ServerInvite
}
NotificationBody::SharedInstanceInvite { .. } => {
NotificationType::SharedInstanceInvite
}
NotificationBody::StatusChange { .. } => {
NotificationType::StatusChange
}
Expand Down Expand Up @@ -470,6 +480,32 @@ impl From<DBNotification> for Notification {
},
],
),
NotificationBody::SharedInstanceInvite {
shared_instance_name,
..
} => (
"You have been invited to a shared instance!".to_string(),
format!(
"An invite has been sent for you to join {shared_instance_name}"
),
"#".to_string(),
vec![
NotificationAction {
name: "Accept".to_string(),
action_route: (
"POST".to_string(),
String::new(),
),
},
NotificationAction {
name: "Deny".to_string(),
action_route: (
"POST".to_string(),
String::new(),
),
},
],
),
NotificationBody::StatusChange {
old_status,
new_status,
Expand Down
1 change: 1 addition & 0 deletions apps/labrinth/src/queue/email/templates.rs
Original file line number Diff line number Diff line change
Expand Up @@ -772,6 +772,7 @@ async fn collect_template_variables(
}

NotificationBody::ProjectUpdate { .. }
| NotificationBody::SharedInstanceInvite { .. }
| NotificationBody::ModeratorMessage { .. }
| NotificationBody::LegacyMarkdown { .. }
| NotificationBody::Unknown => Ok(EmailTemplate::Static(map)),
Expand Down
Loading