func ModulesGetHandler(mapper *pgmapper.Mapper, extractor idextractor.Extractor) http.Handler {
	handlerFunc := func(w http.ResponseWriter, r *http.Request) int {
		id, err := extractor(r)
		if err != nil {
			log.Println("error with extractor in ModulesGetHandler")
			return http.StatusInternalServerError
		}
		result, err := mapper.QueryIntoBytes(`SELECT details from module_details where id = $1`, id)
		if err != nil {
			return http.StatusNotFound
		}
		reader := bytes.NewReader(result)
		_, err = io.Copy(w, reader)
		if err != nil {
			log.Println(err)
		}
		return -1
	}
	return jwtware.New(createHandler(handlerFunc))
}
Пример #2
0
func getPermissionsHandler(mapper *pgmapper.Mapper, objectIdExtractor idextractor.Extractor, userIdExtractor idextractor.Extractor) http.Handler {
	result := func(w http.ResponseWriter, r *http.Request) {
		objectId, err := objectIdExtractor(r)
		if err != nil {
			w.WriteHeader(http.StatusInternalServerError)
			return
		}
		userId, err := userIdExtractor(r)
		if err != nil {
			w.WriteHeader(http.StatusInternalServerError)
			return
		}
		result, err := mapper.QueryIntoBytes("SELECT get_permissions(%v)", objectId, userId)
		if err != nil {
			w.WriteHeader(http.StatusNotFound)
			return
		}
		_, err = io.Copy(w, bytes.NewReader(result))
		if err != nil {
			log.Println(err)
		}
	}
	return http.Handler(http.HandlerFunc(result))
}