resource

package
v0.0.0-...-54ff246 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 16, 2016 License: MIT Imports: 8 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var CourseAnnouncements = Resource{
	"GET": util.AuthNeededHandler(GetCourseAnnouncements),
}
View Source
var CourseAssignments = Resource{
	"GET": util.AuthNeededHandler(GetCourseAssignments),
}
View Source
var CourseFiles = Resource{
	"GET": util.AuthNeededHandler(GetCourseFiles),
}
View Source
var CourseMaterials = Resource{
	"GET": util.AuthNeededHandler(GetCourseMaterials),
}
View Source
var GetAttended = learn.HandlerFunc(func(rw http.ResponseWriter, req *http.Request, ada *learn.Adapter) {
	sem := req.URL.Query().Get("semester")
	english := (util.Language(req) == language.English)

	switch sem {
	case "", "latest":
		if this, next, status, err := ada.NowAttended(english); len(next) == 0 {
			util.JSON(rw, this, status, err)
		} else {
			util.JSON(rw, next, status, err)
		}
	case "this":
		this, _, status, err := ada.NowAttended(english)
		util.JSON(rw, this, status, err)
	case "next":
		_, next, status, err := ada.NowAttended(english)
		util.JSON(rw, next, status, err)
	case "past":
		past, status, err := ada.PastAttended(english)
		util.JSON(rw, past, status, err)
	case "all":
		all, status, err := ada.AllAttended(english)
		util.JSON(rw, all, status, err)
	default:
		courses, status, err := ada.Attended(sem, english)
		util.JSON(rw, courses, status, err)
	}
})
View Source
var GetCourseAnnouncements = learn.HandlerFunc(func(rw http.ResponseWriter, req *http.Request, ada *learn.Adapter) {
	v, status, err := BatchResourceFunc(
		mux.Vars(req)["id"],
		func(id string) (interface{}, int, error) {
			return ada.Announcements(id)
		})
	util.JSON(rw, v, status, err)
})
View Source
var GetCourseAssignments = learn.HandlerFunc(func(rw http.ResponseWriter, req *http.Request, ada *learn.Adapter) {
	v, status, err := BatchResourceFunc(
		mux.Vars(req)["id"],
		func(id string) (interface{}, int, error) {
			return ada.Assignments(id)
		})
	util.JSON(rw, v, status, err)
})
View Source
var GetCourseFiles = learn.HandlerFunc(func(rw http.ResponseWriter, req *http.Request, ada *learn.Adapter) {
	v, status, err := BatchResourceFunc(
		mux.Vars(req)["id"],
		func(id string) (interface{}, int, error) {
			return ada.Files(id)
		})
	util.JSON(rw, v, status, err)
})
View Source
var GetCourseMaterials = learn.HandlerFunc(func(rw http.ResponseWriter, req *http.Request, ada *learn.Adapter) {
	v, status, err := BatchResourceFunc(
		mux.Vars(req)["id"],
		func(id string) (interface{}, int, error) {
			materials := new(model.Materials)
			sg := util.NewStatusGroup()

			sg.Go(func(status *int, err *error) {
				materials.Announcements, *status, *err = ada.Announcements(id)
			})
			sg.Go(func(status *int, err *error) {
				materials.Files, *status, *err = ada.Files(id)
			})
			sg.Go(func(status *int, err *error) {
				materials.Assignments, *status, *err = ada.Assignments(id)
			})

			status, err := sg.Wait()
			return materials, status, err
		})
	util.JSON(rw, v, status, err)
})
View Source
var GetProfile = learn.HandlerFunc(func(rw http.ResponseWriter, req *http.Request, ada *learn.Adapter) {
	profile, status, err := ada.Profile()
	util.JSON(rw, profile, status, err)
})
View Source
var GetSemester = learn.HandlerFunc(func(rw http.ResponseWriter, req *http.Request, ada *learn.Adapter) {
	semester, _, status, err := ada.Semesters()
	util.JSON(rw, semester, status, err)
})

Functions

func BatchResourceFunc

func BatchResourceFunc(argsStr string, f func(string) (interface{}, int, error)) (v interface{}, status int, err error)

Types

type Resource

type Resource map[string]http.Handler

func (Resource) ServeHTTP

func (r Resource) ServeHTTP(rw http.ResponseWriter, req *http.Request)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL