32 lines
614 B
Go

package serializer
import (
"encoding/json"
"twitch-clone/chat-service/models"
"twitch-clone/chat-service/utils"
)
type JsonMessageSerializer struct{}
func (s *JsonMessageSerializer) Decode(input []byte) (*models.ChatMessage, error) {
msg := &models.ChatMessage{}
if err := json.Unmarshal(input, msg); err != nil {
return nil, err
}
if err := utils.Validate.Struct(msg); err != nil {
return nil, err
}
return msg, nil
}
func (s *JsonMessageSerializer) Encode(input *models.ChatMessage) ([]byte, error) {
msg, err := json.Marshal(input)
if err != nil {
return nil, err
}
return msg, nil
}