feat(message_gateway): expose PushRegistry contract

This commit is contained in:
ryan
2026-08-30 11:23:01 +08:00
parent 177d771acf
commit 9a5c2fa643
4 changed files with 107 additions and 1 deletions
@@ -49,6 +49,31 @@ func GetBuiltInEvents() []model.EventMetadata {
return out
}
// PushRegistryAdapter adapts contracts.PushRegistry onto the built-in event store.
type PushRegistryAdapter struct{}
func (PushRegistryAdapter) RegisterBuiltInEvent(meta contracts.PushEventMeta) {
RegisterBuiltInEvent(eventMetadataFromContract(meta))
}
func (PushRegistryAdapter) SyncEvents(ctx context.Context) error {
return SyncEvents(ctx)
}
func eventMetadataFromContract(meta contracts.PushEventMeta) model.EventMetadata {
return model.EventMetadata{
Key: meta.Key,
Name: meta.Name,
Description: meta.Description,
DefaultTemplate: model.NotificationMessage{
Title: meta.DefaultTemplate.Title,
Content: meta.DefaultTemplate.Content,
Level: meta.DefaultTemplate.Level,
Ext: meta.DefaultTemplate.Ext,
},
}
}
// SyncBuiltInEvents seeds a database row for every registered built-in event.
func SyncBuiltInEvents(ctx context.Context) error {
for _, meta := range GetBuiltInEvents() {