unified gateway interface

This commit is contained in:
Stephan D
2025-12-31 17:47:32 +01:00
parent 19b7b69bd8
commit 97ba7500dc
104 changed files with 8228 additions and 1742 deletions

View File

@@ -4,8 +4,10 @@ import (
"context"
"github.com/tech/sendico/notification/interface/api"
"github.com/tech/sendico/notification/internal/appversion"
mmail "github.com/tech/sendico/notification/internal/server/notificationimp/mail"
"github.com/tech/sendico/notification/internal/server/notificationimp/telegram"
"github.com/tech/sendico/pkg/discovery"
"github.com/tech/sendico/pkg/domainprovider"
"github.com/tech/sendico/pkg/merrors"
na "github.com/tech/sendico/pkg/messaging/notifications/account"
@@ -19,10 +21,11 @@ import (
)
type NotificationAPI struct {
logger mlogger.Logger
client mmail.Client
dp domainprovider.DomainProvider
tg telegram.Client
logger mlogger.Logger
client mmail.Client
dp domainprovider.DomainProvider
tg telegram.Client
announcer *discovery.Announcer
}
func (a *NotificationAPI) Name() mservice.Type {
@@ -30,6 +33,9 @@ func (a *NotificationAPI) Name() mservice.Type {
}
func (a *NotificationAPI) Finish(_ context.Context) error {
if a.announcer != nil {
a.announcer.Stop()
}
return nil
}
@@ -91,6 +97,14 @@ func CreateAPI(a api.API) (*NotificationAPI, error) {
return nil, err
}
announce := discovery.Announcement{
Service: "NOTIFICATIONS",
Operations: []string{"notify.send"},
Version: appversion.Create().Short(),
}
p.announcer = discovery.NewAnnouncer(p.logger, a.Register().Producer(), string(mservice.Notifications), announce)
p.announcer.Start()
return p, nil
}