You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

42 lines
845 B
Go

package api
import (
"database/sql"
"encoding/json"
"net/http"
"faculty_media_report/dbi"
)
type markPostedParams struct {
UID string `json:"uid"`
}
func MarkPosted(w http.ResponseWriter, conn *sql.Conn, req jsonRPCRequest, user dbi.User) {
if user.Status != "admin" {
jsonRPCErr(w, -32000, "Forbidden", req.ID)
return
}
var params markPostedParams
if err := json.Unmarshal(req.Params, &params); err != nil {
jsonRPCErr(w, -32602, "Invalid params", req.ID)
return
}
if params.UID == "" {
jsonRPCErr(w, -32602, "Invalid params: uid is required", req.ID)
return
}
if err := dbi.MarkPosted(conn, params.UID); err != nil {
jsonRPCErr(w, -32603, "Internal error - error marking submissions as posted", req.ID)
return
}
writeJSONRPC(w, jsonRPCResponse{
Jsonrpc: "2.0",
Result: true,
ID: req.ID,
})
}