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)) }
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)) }