🐛 Fix push notification didn't contains custom category identifier

This commit is contained in:
2025-07-24 14:43:00 +08:00
parent 3f2dfe6076
commit 29403b09d2
4 changed files with 7 additions and 6 deletions

View File

@@ -14,7 +14,7 @@ public class Notification : ModelBase
[MaxLength(1024)] public string? Title { get; set; }
[MaxLength(2048)] public string? Subtitle { get; set; }
[MaxLength(4096)] public string? Content { get; set; }
[Column(TypeName = "jsonb")] public Dictionary<string, object>? Meta { get; set; }
[Column(TypeName = "jsonb")] public Dictionary<string, object?> Meta { get; set; }
public int Priority { get; set; } = 10;
public Instant? ViewedAt { get; set; }

View File

@@ -238,7 +238,7 @@ public class PushService
{
["id"] = notification.Id,
["topic"] = notification.Topic,
["meta"] = notification.Meta ?? new Dictionary<string, object>()
["meta"] = notification.Meta
}
}
});
@@ -259,13 +259,14 @@ public class PushService
var payload = new Dictionary<string, object?>
{
["topic"] = _apnsTopic,
["type"] = notification.Topic,
["aps"] = new Dictionary<string, object?>
{
["alert"] = alertDict,
["sound"] = notification.Priority >= 5 ? "default" : null,
["mutable-content"] = 1
},
["meta"] = notification.Meta ?? new Dictionary<string, object>()
["meta"] = notification.Meta
};
await _apns.SendAsync(

View File

@@ -107,7 +107,7 @@ public class PusherServiceGrpc(
Topic = request.Notification.Topic,
Title = request.Notification.Title,
Subtitle = request.Notification.Subtitle, Content = request.Notification.Body,
Meta = GrpcTypeHelper.ConvertFromValueMap(request.Notification.Meta),
Meta = GrpcTypeHelper.ConvertFromValueMap(request.Notification.Meta)
};
if (request.Notification.ActionUri is not null)
notification.Meta["action_uri"] = request.Notification.ActionUri;

View File

@@ -220,7 +220,6 @@ public partial class ChatService(
["images"] = message.Attachments
.Where(a => a.MimeType != null && a.MimeType.StartsWith("image"))
.Select(a => a.Id).ToList(),
["action_uri"] = $"/chat/{room.Id}"
};
if (sender.Account.Profile is not { Picture: null })
metaDict["pfp"] = sender.Account.Profile.Picture.Id;
@@ -234,7 +233,8 @@ public partial class ChatService(
Body = !string.IsNullOrEmpty(message.Content)
? message.Content[..Math.Min(message.Content.Length, 100)]
: "<no content>",
IsSavable = false
ActionUri = $"/chat/{room.Id}",
IsSavable = false,
};
notification.Meta.Add(GrpcTypeHelper.ConvertToValueMap(metaDict));