list all messages
This commit is contained in:
@@ -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)
|
||||||
|
@@ -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 {
|
||||||
|
@@ -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}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user