25 lines
564 B
Go
25 lines
564 B
Go
package main
|
|
|
|
import (
|
|
"database/sql"
|
|
"net/http"
|
|
)
|
|
|
|
type Server struct {
|
|
store *Store
|
|
db *sql.DB
|
|
}
|
|
|
|
func NewServer(db *sql.DB) *Server {
|
|
return &Server{store: NewStore(db), db: db}
|
|
}
|
|
|
|
func (s *Server) Routes() *http.ServeMux {
|
|
mux := http.NewServeMux()
|
|
mux.HandleFunc("GET /api/healthz", s.handleHealth)
|
|
mux.HandleFunc("GET /api/posts", s.handleListPosts)
|
|
mux.HandleFunc("POST /api/posts", s.handleCreatePost)
|
|
mux.HandleFunc("GET /api/posts/{id}", s.handleGetPost)
|
|
mux.HandleFunc("POST /api/posts/{id}/comments", s.handleCreateComment)
|
|
return mux
|
|
}
|