From 99b2ee94bf5dde0b591af31522d6d0921088d604 Mon Sep 17 00:00:00 2001 From: Matthew Dillon Date: Thu, 25 Jun 2015 22:18:27 -0800 Subject: [PATCH] Restructuring users routes under genus --- handlers.go | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/handlers.go b/handlers.go index 3b8fe77..6139837 100644 --- a/handlers.go +++ b/handlers.go @@ -77,26 +77,25 @@ func Handler() http.Handler { characteristicTypeService := CharacteristicTypeService{} measurementService := MeasurementService{} - // Non-auth routes m.Handle("/authenticate", tokenHandler(j.GenerateToken())).Methods("POST") - m.Handle("/users", errorHandler(handleCreater(userService))).Methods("POST") - m.Handle("/users/verify/{Nonce}", http.HandlerFunc(handleUserVerify)).Methods("GET") - // Auth routes - m.Handle("/users", j.Secure(errorHandler(handleLister(userService)), verifyClaims)).Methods("GET") - m.Handle("/users/{Id:.+}", j.Secure(errorHandler(handleGetter(userService)), verifyClaims)).Methods("GET") - m.Handle("/users/{Id:.+}", j.Secure(errorHandler(handleUpdater(userService)), verifyClaims)).Methods("PUT") - - // Path-based pattern matching subrouter + // Everything past here is lumped under a genus s := m.PathPrefix("/{genus}").Subrouter() + s.Handle("/users", errorHandler(handleCreater(userService))).Methods("POST") + s.Handle("/users/verify/{Nonce}", http.HandlerFunc(handleUserVerify)).Methods("GET") + type r struct { f errorHandler m string p string } + // Everything past this point requires a valid token routes := []r{ + r{handleLister(userService), "GET", "/users"}, + r{handleGetter(userService), "GET", "/users/{Id:.+}"}, + r{handleUpdater(userService), "PUT", "/users/{Id:.+}"}, r{handleLister(speciesService), "GET", "/species"}, r{handleCreater(speciesService), "POST", "/species"}, r{handleGetter(speciesService), "GET", "/species/{Id:.+}"},