package quizzes import ( "git.golem15.com/golem15/sm-quizzes-plugin/controllers/api" "git.golem15.com/golem15/summercms/modules/pact" "git.golem15.com/golem15/summercms/modules/surf" ) var _ pact.HasRoutes = (*Plugin)(nil) // Routes mounts the quiz API under /_quizzes/api/v1 behind golem15.user's // jwt.auth middleware. func (p *Plugin) Routes(r pact.Router) error { h := api.New(p.app) r.Group("/_quizzes/api/v1", surf.Use("jwt.auth"), func(g pact.Router) { g.Get("/quizzes", h.ListQuizzes) g.Get("/quizzes/{slug}", h.ShowQuiz) g.Where("slug", `[a-z0-9-]+`) g.Post("/quizzes/{slug}/attempts", h.StartAttempt) g.Where("slug", `[a-z0-9-]+`) g.Get("/attempts", h.ListAttempts) g.Get("/attempts/{id}", h.ShowAttempt) g.Where("id", `[0-9]+`) g.Post("/attempts/{id}/answers", h.Answer) g.Where("id", `[0-9]+`) g.Post("/attempts/{id}/finish", h.Finish) g.Where("id", `[0-9]+`) }) return nil }