2017-05-10 06:20:45 +02:00
package router
import (
"net/http"
"github.com/ewhal/nyaa/model"
"github.com/ewhal/nyaa/service/moderation"
2017-05-10 10:42:25 +02:00
"github.com/ewhal/nyaa/service/user/permission"
2017-05-10 06:20:45 +02:00
)
2017-05-10 09:57:55 +02:00
/ *
2017-05-10 06:20:45 +02:00
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
}
}
2017-05-10 09:57:55 +02:00
* /
2017-05-10 06:20:45 +02:00
func GetTorrentReportHandler ( w http . ResponseWriter , r * http . Request ) {
2017-05-10 10:42:25 +02:00
currentUser := GetUser ( r )
if userPermission . HasAdmin ( currentUser ) {
torrentReports , err := moderationService . GetTorrentReports ( )
if err != nil {
http . Error ( w , err . Error ( ) , http . StatusInternalServerError )
return
}
err = torrentReportTemplate . ExecuteTemplate ( w , "torrent_report.html" , ViewTorrentReportsVariables { model . TorrentReportsToJSON ( torrentReports ) } )
if err != nil {
http . Error ( w , err . Error ( ) , http . StatusInternalServerError )
return
}
} else {
http . Error ( w , "admins only" , http . StatusForbidden )
}
2017-05-10 06:20:45 +02:00
}
2017-05-10 09:57:55 +02:00
/ *
2017-05-10 06:20:45 +02:00
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 )
}
2017-05-10 09:57:55 +02:00
} * /