Add list to server
This commit is contained in:
parent
a0c06e5615
commit
2739dafe3d
@ -10,3 +10,7 @@ type ResponseIndex struct {
|
||||
type ResponseAPIPost struct {
|
||||
ID string `json:"id"`
|
||||
}
|
||||
|
||||
type ResponseAPIList struct {
|
||||
IDs []string `json:"ids"`
|
||||
}
|
||||
|
@ -34,6 +34,7 @@ func NewServer(s store.Store) *Server {
|
||||
r.Get("/", srv.HandlerIndexGet)
|
||||
r.Route("/api", func(r chi.Router) {
|
||||
r.Get("/{id}", srv.HandlerAPIGet)
|
||||
r.Get("/", srv.HandlerAPIList)
|
||||
r.Post("/", srv.HandlerAPIPost)
|
||||
})
|
||||
|
||||
@ -101,6 +102,7 @@ func (s *Server) HandlerAPIPost(w http.ResponseWriter, r *http.Request) {
|
||||
}
|
||||
} else {
|
||||
// Is not multipart
|
||||
// TODO: Not working
|
||||
if mediaType == "application/x-www-form-urlencoded" {
|
||||
if err := r.ParseForm(); err != nil {
|
||||
log.Printf("Error parsing form: %s", err)
|
||||
@ -145,3 +147,17 @@ func (s *Server) HandlerAPIGet(w http.ResponseWriter, r *http.Request) {
|
||||
log.Panicf("Error writing to client: %s", err)
|
||||
}
|
||||
}
|
||||
|
||||
func (s *Server) HandlerAPIList(w http.ResponseWriter, r *http.Request) {
|
||||
ids, err := s.store.List()
|
||||
if err != nil {
|
||||
log.Panicf("Error listing store contents: %s", err)
|
||||
}
|
||||
|
||||
resp := &ResponseAPIList{IDs: ids}
|
||||
encoder := json.NewEncoder(w)
|
||||
|
||||
if err := encoder.Encode(resp); err != nil {
|
||||
log.Panicf("Error encoding response to client: %s", err)
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user