service backend
All checks were successful
ci/woodpecker/push/db Pipeline was successful
ci/woodpecker/push/nats Pipeline was successful

This commit is contained in:
Stephan D
2025-11-07 18:35:26 +01:00
parent 20e8f9acc4
commit 62a6631b9a
537 changed files with 48453 additions and 0 deletions

View File

@@ -0,0 +1,16 @@
package notifications
import (
an "github.com/tech/sendico/pkg/messaging/internal/notifications/account"
messaging "github.com/tech/sendico/pkg/messaging/envelope"
nm "github.com/tech/sendico/pkg/model/notification"
"go.mongodb.org/mongo-driver/bson/primitive"
)
func Account(sender string, accountRef primitive.ObjectID, action nm.NotificationAction) messaging.Envelope {
return an.NewAccountImp(sender, accountRef, action)
}
func AccountCreated(sender string, accountRef primitive.ObjectID) messaging.Envelope {
return Account(sender, accountRef, nm.NACreated)
}

View File

@@ -0,0 +1,11 @@
package notifications
import (
"context"
"github.com/tech/sendico/pkg/model"
)
type AccountHandler = func(context.Context, *model.Account) error
type PasswordResetHandler = func(context.Context, *model.Account, string) error

View File

@@ -0,0 +1,24 @@
package notifications
import (
"github.com/tech/sendico/pkg/db/account"
messaging "github.com/tech/sendico/pkg/messaging/envelope"
an "github.com/tech/sendico/pkg/messaging/internal/notifications/account"
mah "github.com/tech/sendico/pkg/messaging/notifications/account/handler"
np "github.com/tech/sendico/pkg/messaging/notifications/processor"
"github.com/tech/sendico/pkg/mlogger"
nm "github.com/tech/sendico/pkg/model/notification"
"go.mongodb.org/mongo-driver/bson/primitive"
)
func PasswordReset(sender string, accountRef primitive.ObjectID, resetToken string, action nm.NotificationAction) messaging.Envelope {
return an.NewPasswordResetImp(sender, accountRef, resetToken, action)
}
func PasswordResetRequested(sender string, accountRef primitive.ObjectID, resetToken string) messaging.Envelope {
return PasswordReset(sender, accountRef, resetToken, nm.NAPasswordReset)
}
func NewPasswordResetRequestedMessageProcessor(logger mlogger.Logger, db account.DB, handler mah.PasswordResetHandler) np.EnvelopeProcessor {
return an.NewPasswordResetMessageProcessor(logger, handler, db, nm.NAPasswordReset)
}

View File

@@ -0,0 +1,14 @@
package notifications
import (
"github.com/tech/sendico/pkg/db/account"
macp "github.com/tech/sendico/pkg/messaging/internal/notifications/account"
mah "github.com/tech/sendico/pkg/messaging/notifications/account/handler"
np "github.com/tech/sendico/pkg/messaging/notifications/processor"
"github.com/tech/sendico/pkg/mlogger"
nm "github.com/tech/sendico/pkg/model/notification"
)
func NewAccountCreatedMessageProcessor(logger mlogger.Logger, db account.DB, handler mah.AccountHandler) np.EnvelopeProcessor {
return macp.NewAccountMessageProcessor(logger, handler, db, nm.NACreated)
}

View File

@@ -0,0 +1,9 @@
package notifications
import (
"context"
"github.com/tech/sendico/pkg/model"
)
type InvitationHandler = func(context.Context, *model.Account, *model.Invitation) error

View File

@@ -0,0 +1,43 @@
package notifications
import (
messaging "github.com/tech/sendico/pkg/messaging/envelope"
on "github.com/tech/sendico/pkg/messaging/notifications/object"
nm "github.com/tech/sendico/pkg/model/notification"
"github.com/tech/sendico/pkg/mservice"
"go.mongodb.org/mongo-driver/bson/primitive"
)
func InvitationCreated(
sender string,
actorAccountRef primitive.ObjectID,
objectType mservice.Type,
objectRef primitive.ObjectID,
) messaging.Envelope {
return on.ObjectCreated(sender, actorAccountRef, mservice.Invitations, objectRef)
}
func InvitationUpdated(
sender string,
actorAccountRef primitive.ObjectID,
objectRef primitive.ObjectID,
) messaging.Envelope {
return on.ObjectUpdated(sender, actorAccountRef, mservice.Invitations, objectRef)
}
func InvitationDeleted(
sender string,
actorAccountRef primitive.ObjectID,
objectRef primitive.ObjectID,
) messaging.Envelope {
return on.ObjectDeleted(sender, actorAccountRef, mservice.Invitations, objectRef)
}
func Invitation(
sender string,
actorAccountRef primitive.ObjectID,
objectRef primitive.ObjectID,
action nm.NotificationAction,
) messaging.Envelope {
return on.Object(sender, actorAccountRef, mservice.Invitations, objectRef, action)
}

View File

@@ -0,0 +1,30 @@
package notifications
import (
"github.com/tech/sendico/pkg/db/account"
"github.com/tech/sendico/pkg/db/invitation"
micp "github.com/tech/sendico/pkg/messaging/internal/notifications/invitation"
mih "github.com/tech/sendico/pkg/messaging/notifications/invitation/handler"
np "github.com/tech/sendico/pkg/messaging/notifications/processor"
"github.com/tech/sendico/pkg/mlogger"
nm "github.com/tech/sendico/pkg/model/notification"
)
func NewInvitationMessageProcessor(
logger mlogger.Logger,
handler mih.InvitationHandler,
db invitation.DB,
adb account.DB,
action nm.NotificationAction,
) np.EnvelopeProcessor {
return micp.NewInvitationMessageProcessor(logger, handler, db, adb, action)
}
func NewInvitationCreatedProcessor(
logger mlogger.Logger,
handler mih.InvitationHandler,
db invitation.DB,
adb account.DB,
) np.EnvelopeProcessor {
return NewInvitationMessageProcessor(logger, handler, db, adb, nm.NACreated)
}

View File

@@ -0,0 +1,9 @@
package notifications
import (
"context"
"github.com/tech/sendico/pkg/model"
)
type NResultHandler = func(context.Context, *model.NotificationResult) error

View File

@@ -0,0 +1,11 @@
package notifications
import (
messaging "github.com/tech/sendico/pkg/messaging/envelope"
nn "github.com/tech/sendico/pkg/messaging/internal/notifications/notification"
"github.com/tech/sendico/pkg/model"
)
func NotificationSent(sender string, result *model.NotificationResult) messaging.Envelope {
return nn.NewNResultNotification(sender, result)
}

View File

@@ -0,0 +1,16 @@
package notifications
import (
"context"
nm "github.com/tech/sendico/pkg/model/notification"
"github.com/tech/sendico/pkg/mservice"
"go.mongodb.org/mongo-driver/bson/primitive"
)
type ObjectUpdateHandler = func(
ctx context.Context,
objectType mservice.Type,
objectRef, actorAccountRef primitive.ObjectID,
action nm.NotificationAction,
) error

View File

@@ -0,0 +1,46 @@
package notifications
import (
messaging "github.com/tech/sendico/pkg/messaging/envelope"
on "github.com/tech/sendico/pkg/messaging/internal/notifications/object"
nm "github.com/tech/sendico/pkg/model/notification"
"github.com/tech/sendico/pkg/mservice"
"go.mongodb.org/mongo-driver/bson/primitive"
)
func Object(
sender string,
actorAccountRef primitive.ObjectID,
objectType mservice.Type,
objectRef primitive.ObjectID,
action nm.NotificationAction,
) messaging.Envelope {
return on.NewObjectImp(sender, actorAccountRef, objectType, objectRef, action)
}
func ObjectCreated(
sender string,
actorAccountRef primitive.ObjectID,
objectType mservice.Type,
objectRef primitive.ObjectID,
) messaging.Envelope {
return Object(sender, actorAccountRef, objectType, objectRef, nm.NACreated)
}
func ObjectUpdated(
sender string,
actorAccountRef primitive.ObjectID,
objectType mservice.Type,
objectRef primitive.ObjectID,
) messaging.Envelope {
return Object(sender, actorAccountRef, objectType, objectRef, nm.NAUpdated)
}
func ObjectDeleted(
sender string,
actorAccountRef primitive.ObjectID,
objectType mservice.Type,
objectRef primitive.ObjectID,
) messaging.Envelope {
return Object(sender, actorAccountRef, objectType, objectRef, nm.NADeleted)
}

View File

@@ -0,0 +1,19 @@
package notifications
import (
mocp "github.com/tech/sendico/pkg/messaging/internal/notifications/object"
moh "github.com/tech/sendico/pkg/messaging/notifications/object/handler"
np "github.com/tech/sendico/pkg/messaging/notifications/processor"
"github.com/tech/sendico/pkg/mlogger"
nm "github.com/tech/sendico/pkg/model/notification"
"github.com/tech/sendico/pkg/mservice"
)
func NewObjectChangedMessageProcessor(
logger mlogger.Logger,
objectType mservice.Type,
action nm.NotificationAction,
handler moh.ObjectUpdateHandler,
) np.EnvelopeProcessor {
return mocp.NewObjectChangeMessageProcessor(logger, handler, objectType, action)
}

View File

@@ -0,0 +1,13 @@
package notifications
import (
"context"
me "github.com/tech/sendico/pkg/messaging/envelope"
"github.com/tech/sendico/pkg/model"
)
type EnvelopeProcessor interface {
GetSubject() model.NotificationEvent
Process(ctx context.Context, envelope me.Envelope) error
}