Send back changed message
This commit is contained in:
+3
-2
@@ -3,12 +3,13 @@ package rest
|
||||
import (
|
||||
"context"
|
||||
|
||||
"github.com/pkg/errors"
|
||||
|
||||
"github.com/crusttech/crust/internal/payload"
|
||||
"github.com/crusttech/crust/internal/payload/outgoing"
|
||||
"github.com/crusttech/crust/sam/rest/request"
|
||||
"github.com/crusttech/crust/sam/service"
|
||||
"github.com/crusttech/crust/sam/types"
|
||||
"github.com/pkg/errors"
|
||||
)
|
||||
|
||||
var _ = errors.Wrap
|
||||
@@ -93,7 +94,7 @@ func (ctrl *Message) ReactionRemove(ctx context.Context, r *request.MessageReact
|
||||
}
|
||||
func (ctrl *Message) wrap(ctx context.Context) func(m *types.Message, err error) (*outgoing.Message, error) {
|
||||
return func(m *types.Message, err error) (*outgoing.Message, error) {
|
||||
if err != nil {
|
||||
if err != nil || m == nil {
|
||||
return nil, err
|
||||
} else {
|
||||
return payload.Message(ctx, m), nil
|
||||
|
||||
@@ -205,28 +205,28 @@ func (svc *message) Update(in *types.Message) (message *types.Message, err error
|
||||
_ = currentUserID
|
||||
|
||||
return message, svc.db.Transaction(func() (err error) {
|
||||
original, err := svc.message.FindMessageByID(in.ID)
|
||||
message, err = svc.message.FindMessageByID(in.ID)
|
||||
if err != nil {
|
||||
return err
|
||||
return errors.Wrap(err, "Could not load message for editing")
|
||||
}
|
||||
|
||||
if original.Message == in.Message {
|
||||
if message.Message == in.Message {
|
||||
// Nothing changed
|
||||
return nil
|
||||
}
|
||||
|
||||
if original.UserID != currentUserID {
|
||||
if message.UserID != currentUserID {
|
||||
return errors.New("Not an owner")
|
||||
}
|
||||
|
||||
// Allow message content to be changed, ignore everything else
|
||||
original.Message = in.Message
|
||||
// Allow message content to be changed
|
||||
message.Message = in.Message
|
||||
|
||||
if message, err = svc.message.UpdateMessage(original); err != nil {
|
||||
if message, err = svc.message.UpdateMessage(message); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
return svc.sendEvent(original)
|
||||
return svc.sendEvent(message)
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user