func (s *Server) routeHandler() http.Handler { return routing.NewRouteHandler( routing.PrefixSeq("/v1", s.ClassroomsRoutes(), ), routing.Any(http.FileServer(http.Dir(s.config.UiDir))), ) }
func (s *Server) ClassroomsRoutes() routing.Matcher { resource := &classroomsResource{ store: s.store, logger: s.logger.WithContext(map[string]interface{}{"resource": "classrooms"}), } return routing.PrefixSeq("/classrooms", routing.StringPart(func(classroomName string) routing.Matcher { return routing.EndSeq( routing.GETFunc(resource.wrapWithClassroom(classroomName, resource.GetClassroom)), routing.PUTFunc(resource.wrapWithClassroom(classroomName, resource.UpdateClassroom)), routing.DELETEFunc(resource.DeleteClassroom(classroomName)), routing.MethodNotAllowed, ) }), routing.EndSeq( routing.POSTFunc(wrap(resource.logger, resource.CreateClassroom)), routing.MethodNotAllowed, ), ) }