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
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, ¶ms); 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,
|
|
})
|
|
}
|