Initial commit -- Router and add AddRoute method and tests.

This commit is contained in:
2020-08-30 16:29:15 -07:00
commit 01852dbaf5
4 changed files with 149 additions and 0 deletions

40
router.go Normal file
View File

@ -0,0 +1,40 @@
package router
import "net/http"
type route struct {
method string
path string
callback http.HandlerFunc
}
// Router is the main router object that keeps track of an looks up routes.
type Router struct {
routes []route
}
// NewRouter is a constructor for Router.
func NewRouter() (r Router) {
return
}
// AddRoute adds a new route with a corresponding callback to the router.
func (r *Router) AddRoute(method string, path string, callback http.HandlerFunc) (err error) {
r.routes = append(r.routes, route{method, path, callback})
return
}
// Get is a convinience method which calls Router.AddRoute with the "GET" method.
func (r *Router) Get(path string, callback http.HandlerFunc) {
r.AddRoute(http.MethodGet, path, callback)
}
// // Handle I don't know what this is yet, I assume it's called when there's a request
// func (r *Router) Handle(w http.ResponseWriter, req *http.Request) {
// return
// }
func (r Router) ServeHTTP(w http.ResponseWriter, req *http.Request) {
return
}