forked from NyaaPantsu/nyaa
/
torrentReportHandler.go
93 lines (82 loc) · 2.53 KB
/
torrentReportHandler.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
package router
/*import (
"net/http"
"strconv"
"github.com/ewhal/nyaa/model"
"github.com/ewhal/nyaa/service/moderation"
"github.com/ewhal/nyaa/service/user/permission"
"github.com/gorilla/mux"
)*/
/*
func SanitizeTorrentReport(torrentReport *model.TorrentReport) {
// TODO unescape html ?
return
}
func IsValidTorrentReport() bool {
// TODO Validate, see if user_id already reported, see if torrent exists
return true
}
// TODO Only allow moderators for each action in this file
func CreateTorrentReportHandler(w http.ResponseWriter, r *http.Request) {
var torrentReport model.TorrentReport
var err error
modelHelper.BindValueForm(&torrentReport, r)
if IsValidTorrentReport() {
http.Error(w, err.Error(), http.StatusInternalServerError)
return
}
SanitizeTorrentReport(&torrentReport)
_, err = moderationService.CreateTorrentReport(torrentReport)
if err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError)
return
}
}
func DeleteTorrentReportHandler(w http.ResponseWriter, r *http.Request) {
// TODO Figure out how to get torrent report id from form
var id int
var err error
_, err = moderationService.DeleteTorrentReport(id)
if err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError)
return
}
}
*/
/*
func DeleteTorrentHandler(w http.ResponseWriter, r *http.Request) {
// TODO Figure out how to get torrent report id from form
var err error
var id string
_, err = torrentService.DeleteTorrent(id)
if err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError)
}
}*/
/*func GetTorrentReportHandler(w http.ResponseWriter, r *http.Request) {
currentUser := GetUser(r)
if userPermission.HasAdmin(currentUser) {
vars := mux.Vars(r)
page, _ := strconv.Atoi(vars["page"])
offset := 100
userid := r.URL.Query().Get("userid")
var conditions string
var values []interface{}
if (userid != "") {
conditions = "user_id = ?"
values = append(values, userid)
}
torrentReports, nbReports, err := moderationService.GetTorrentReports(offset, page * offset, conditions, values...)
if err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError)
return
}
err = torrentReportTemplate.ExecuteTemplate(w, "admin_index.html", ViewTorrentReportsVariables{model.TorrentReportsToJSON(torrentReports), NewSearchForm(), Navigation{nbReports, offset, page, "mod_trlist_page"}, currentUser, r.URL})
if err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError)
return
}
} else {
http.Error(w, "admins only", http.StatusForbidden)
}
}*/