list all messages

This commit is contained in:
2024-12-29 20:01:05 -05:00
parent 0b36bcbd6a
commit c2df6028b3
3 changed files with 21 additions and 1 deletions

View File

@@ -33,6 +33,7 @@ func Start() {
}) })
r.Route("/messages", func(r chi.Router) { r.Route("/messages", func(r chi.Router) {
r.Get("/", ListMessages)
r.Route("/{messageID}", func(r chi.Router) { r.Route("/{messageID}", func(r chi.Router) {
r.Use(MessageCtx) // Load message r.Use(MessageCtx) // Load message
r.Get("/", GetMessage) r.Get("/", GetMessage)

View File

@@ -42,6 +42,13 @@ func GetMessage(w http.ResponseWriter, r *http.Request) {
} }
func ListMessages(w http.ResponseWriter, r *http.Request) {
if err := render.RenderList(w, r, NewMessageListResponse(messages)); err != nil {
render.Render(w, r, ErrRender(err))
return
}
}
type messageKey struct{} type messageKey struct{}
type Message struct { type Message struct {

View File

@@ -1,6 +1,10 @@
package api package api
import "net/http" import (
"net/http"
"github.com/go-chi/render"
)
func NewMessageResponse(message *Message) *MessageResponse { func NewMessageResponse(message *Message) *MessageResponse {
resp := &MessageResponse{Message: message} resp := &MessageResponse{Message: message}
@@ -18,6 +22,14 @@ func (mr *MessageResponse) Render(w http.ResponseWriter, r *http.Request) error
return nil return nil
} }
func NewMessageListResponse(messages []*Message) []render.Renderer {
list := []render.Renderer{}
for _, message := range messages {
list = append(list, NewMessageResponse(message))
}
return list
}
func NewUserPayloadResponse(user *User) *UserPayload { func NewUserPayloadResponse(user *User) *UserPayload {
return &UserPayload{User: user} return &UserPayload{User: user}
} }