service backend
This commit is contained in:
16
api/pkg/messaging/notifications/account/created.go
Normal file
16
api/pkg/messaging/notifications/account/created.go
Normal 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)
|
||||
}
|
||||
11
api/pkg/messaging/notifications/account/handler/interface.go
Normal file
11
api/pkg/messaging/notifications/account/handler/interface.go
Normal 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
|
||||
24
api/pkg/messaging/notifications/account/password_reset.go
Normal file
24
api/pkg/messaging/notifications/account/password_reset.go
Normal 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)
|
||||
}
|
||||
14
api/pkg/messaging/notifications/account/processor.go
Normal file
14
api/pkg/messaging/notifications/account/processor.go
Normal 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)
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
package notifications
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
||||
"github.com/tech/sendico/pkg/model"
|
||||
)
|
||||
|
||||
type InvitationHandler = func(context.Context, *model.Account, *model.Invitation) error
|
||||
43
api/pkg/messaging/notifications/invitation/invitation.go
Normal file
43
api/pkg/messaging/notifications/invitation/invitation.go
Normal 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)
|
||||
}
|
||||
30
api/pkg/messaging/notifications/invitation/processor.go
Normal file
30
api/pkg/messaging/notifications/invitation/processor.go
Normal 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)
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
package notifications
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
||||
"github.com/tech/sendico/pkg/model"
|
||||
)
|
||||
|
||||
type NResultHandler = func(context.Context, *model.NotificationResult) error
|
||||
11
api/pkg/messaging/notifications/notification/sent.go
Normal file
11
api/pkg/messaging/notifications/notification/sent.go
Normal 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)
|
||||
}
|
||||
16
api/pkg/messaging/notifications/object/handler/interface.go
Normal file
16
api/pkg/messaging/notifications/object/handler/interface.go
Normal 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
|
||||
46
api/pkg/messaging/notifications/object/object.go
Normal file
46
api/pkg/messaging/notifications/object/object.go
Normal 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)
|
||||
}
|
||||
19
api/pkg/messaging/notifications/object/processor.go
Normal file
19
api/pkg/messaging/notifications/object/processor.go
Normal 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)
|
||||
}
|
||||
13
api/pkg/messaging/notifications/processor/envelope.go
Normal file
13
api/pkg/messaging/notifications/processor/envelope.go
Normal 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
|
||||
}
|
||||
Reference in New Issue
Block a user