Wrap (cast) message REST output to outgoing.Message(Set)
This commit is contained in:
@@ -72,6 +72,8 @@ func User(user *auth.User) *outgoing.User {
|
||||
|
||||
return &outgoing.User{
|
||||
ID: Uint64toa(user.ID),
|
||||
Name: user.Name,
|
||||
Handle: user.Handle,
|
||||
Username: user.Username,
|
||||
}
|
||||
}
|
||||
|
||||
+27
-8
@@ -2,6 +2,9 @@ package rest
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
||||
"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"
|
||||
@@ -25,25 +28,25 @@ func (Message) New() *Message {
|
||||
}
|
||||
|
||||
func (ctrl *Message) Create(ctx context.Context, r *request.MessageCreate) (interface{}, error) {
|
||||
return ctrl.svc.msg.With(ctx).Create(&types.Message{
|
||||
return ctrl.wrap(ctrl.svc.msg.With(ctx).Create(&types.Message{
|
||||
ChannelID: r.ChannelID,
|
||||
Message: r.Message,
|
||||
})
|
||||
}))
|
||||
}
|
||||
|
||||
func (ctrl *Message) History(ctx context.Context, r *request.MessageHistory) (interface{}, error) {
|
||||
return ctrl.svc.msg.With(ctx).Find(&types.MessageFilter{
|
||||
return ctrl.wrapSet(ctrl.svc.msg.With(ctx).Find(&types.MessageFilter{
|
||||
ChannelID: r.ChannelID,
|
||||
FromMessageID: r.LastMessageID,
|
||||
})
|
||||
}))
|
||||
}
|
||||
|
||||
func (ctrl *Message) Edit(ctx context.Context, r *request.MessageEdit) (interface{}, error) {
|
||||
return ctrl.svc.msg.With(ctx).Update(&types.Message{
|
||||
return ctrl.wrap(ctrl.svc.msg.With(ctx).Update(&types.Message{
|
||||
ID: r.MessageID,
|
||||
ChannelID: r.ChannelID,
|
||||
Message: r.Message,
|
||||
})
|
||||
}))
|
||||
}
|
||||
|
||||
func (ctrl *Message) Delete(ctx context.Context, r *request.MessageDelete) (interface{}, error) {
|
||||
@@ -51,10 +54,10 @@ func (ctrl *Message) Delete(ctx context.Context, r *request.MessageDelete) (inte
|
||||
}
|
||||
|
||||
func (ctrl *Message) Search(ctx context.Context, r *request.MessageSearch) (interface{}, error) {
|
||||
return ctrl.svc.msg.With(ctx).Find(&types.MessageFilter{
|
||||
return ctrl.wrapSet(ctrl.svc.msg.With(ctx).Find(&types.MessageFilter{
|
||||
ChannelID: r.ChannelID,
|
||||
Query: r.Query,
|
||||
})
|
||||
}))
|
||||
}
|
||||
|
||||
func (ctrl *Message) Pin(ctx context.Context, r *request.MessagePin) (interface{}, error) {
|
||||
@@ -80,3 +83,19 @@ func (ctrl *Message) React(ctx context.Context, r *request.MessageReact) (interf
|
||||
func (ctrl *Message) Unreact(ctx context.Context, r *request.MessageUnreact) (interface{}, error) {
|
||||
return nil, ctrl.svc.msg.With(ctx).Unreact(r.MessageID, r.Reaction)
|
||||
}
|
||||
|
||||
func (ctrl *Message) wrap(m *types.Message, err error) (*outgoing.Message, error) {
|
||||
if err != nil {
|
||||
return nil, err
|
||||
} else {
|
||||
return payload.Message(m), nil
|
||||
}
|
||||
}
|
||||
|
||||
func (ctrl *Message) wrapSet(mm types.MessageSet, err error) (*outgoing.MessageSet, error) {
|
||||
if err != nil {
|
||||
return nil, err
|
||||
} else {
|
||||
return payload.Messages(mm), nil
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user