package api import ( "encoding/json" "errors" "net/http" "smm2_gameserver/orm" "github.com/gorilla/mux" ) func initComment() { Secure("/api/admin/comment/{id}", func(w http.ResponseWriter, r *http.Request, user orm.User) { commentId := mux.Vars(r)["id"] if !user.Role.Admin { reportError(w, r, errors.New("you do not have admin permissions")) return } err := dataView.AdminDeleteComment(commentId) w.Header().Set("Content-Type", "application/json") json.NewEncoder(w).Encode(map[string]any{"id": commentId, "error": err}) }).Methods("DELETE") // list all comments for admin purposes Secure("/api/admin/comments", func(w http.ResponseWriter, r *http.Request, user orm.User) { if !user.Role.Admin { reportError(w, r, errors.New("you do not have admin permissions")) return } size, offset, err := parseRange(r.URL.Query()) if err != nil { reportError(w, r, err) return } var comments []orm.Comment err = db. Preload("Image"). Preload("Commenter"). Preload("Course.Owner"). Order("time_posted DESC"). Offset(offset). Limit(size). Find(&comments). Error if err != nil { reportError(w, r, err) return } w.Header().Set("Content-Type", "application/json") err = json.NewEncoder(w).Encode(comments) if err != nil { reportError(w, r, err) return } }) }