custom rap logs
This commit is contained in:
parent
982b9ab9f8
commit
3130863456
|
@ -116,6 +116,9 @@ func Start(conf common.Conf, dbO *sqlx.DB) *fhr.Router {
|
||||||
r.POSTMethod("/api/v1/users/self/userpage", v1.UserSelfUserpagePOST, common.PrivilegeWrite)
|
r.POSTMethod("/api/v1/users/self/userpage", v1.UserSelfUserpagePOST, common.PrivilegeWrite)
|
||||||
r.POSTMethod("/api/v1/beatmaps/rank_requests", v1.BeatmapRankRequestsSubmitPOST, common.PrivilegeWrite)
|
r.POSTMethod("/api/v1/beatmaps/rank_requests", v1.BeatmapRankRequestsSubmitPOST, common.PrivilegeWrite)
|
||||||
|
|
||||||
|
// Admin: RAP
|
||||||
|
r.POSTMethod("/api/v1/rap/log", v1.RAPLogPOST)
|
||||||
|
|
||||||
// Admin: beatmap
|
// Admin: beatmap
|
||||||
r.POSTMethod("/api/v1/beatmaps/set_status", v1.BeatmapSetStatusPOST, common.PrivilegeBeatmap)
|
r.POSTMethod("/api/v1/beatmaps/set_status", v1.BeatmapSetStatusPOST, common.PrivilegeBeatmap)
|
||||||
r.Method("/api/v1/beatmaps/ranked_frozen_full", v1.BeatmapRankedFrozenFullGET, common.PrivilegeBeatmap)
|
r.Method("/api/v1/beatmaps/ranked_frozen_full", v1.BeatmapRankedFrozenFullGET, common.PrivilegeBeatmap)
|
||||||
|
|
|
@ -174,23 +174,6 @@ func UserEditPOST(md common.MethodData) common.CodeMessager {
|
||||||
return userPutsSingle(md, md.DB.QueryRowx(userFields+" WHERE users.id = ? LIMIT 1", data.ID))
|
return userPutsSingle(md, md.DB.QueryRowx(userFields+" WHERE users.id = ? LIMIT 1", data.ID))
|
||||||
}
|
}
|
||||||
|
|
||||||
func rapLog(md common.MethodData, message string) {
|
|
||||||
ua := string(md.Ctx.UserAgent())
|
|
||||||
if len(ua) > 20 {
|
|
||||||
ua = ua[:20] + "…"
|
|
||||||
}
|
|
||||||
through := "API"
|
|
||||||
if ua != "" {
|
|
||||||
through += " (" + ua + ")"
|
|
||||||
}
|
|
||||||
|
|
||||||
_, err := md.DB.Exec("INSERT INTO rap_logs(userid, text, datetime, through) VALUES (?, ?, ?, ?)",
|
|
||||||
md.User.UserID, message, time.Now().Unix(), through)
|
|
||||||
if err != nil {
|
|
||||||
md.Err(err)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func appendToUserNotes(md common.MethodData, message string, user int) {
|
func appendToUserNotes(md common.MethodData, message string, user int) {
|
||||||
message = "\n[" + time.Now().Format("2006-01-02 15:04:05") + "] API: " + message
|
message = "\n[" + time.Now().Format("2006-01-02 15:04:05") + "] API: " + message
|
||||||
_, err := md.DB.Exec("UPDATE users SET notes = CONCAT(COALESCE(notes, ''), ?) WHERE id = ?",
|
_, err := md.DB.Exec("UPDATE users SET notes = CONCAT(COALESCE(notes, ''), ?) WHERE id = ?",
|
||||||
|
|
87
app/v1/rap.go
Normal file
87
app/v1/rap.go
Normal file
|
@ -0,0 +1,87 @@
|
||||||
|
package v1
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"time"
|
||||||
|
|
||||||
|
"zxq.co/ripple/rippleapi/common"
|
||||||
|
)
|
||||||
|
|
||||||
|
type rapLogData struct {
|
||||||
|
Through string `json:"through"`
|
||||||
|
Text string `json:"text"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type rapLogMessage struct {
|
||||||
|
rapLogData
|
||||||
|
Author int `json:"author"`
|
||||||
|
CreatedAt time.Time `json:"created_at"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type rapLogResponse struct {
|
||||||
|
common.ResponseBase
|
||||||
|
rapLogMessage
|
||||||
|
}
|
||||||
|
|
||||||
|
// RAPLogPOST creates a new entry in the RAP logs
|
||||||
|
func RAPLogPOST(md common.MethodData) common.CodeMessager {
|
||||||
|
if md.User.UserPrivileges&common.AdminPrivilegeAccessRAP == 0 {
|
||||||
|
return common.SimpleResponse(403, "Got lost, kiddo?")
|
||||||
|
}
|
||||||
|
|
||||||
|
var d rapLogData
|
||||||
|
if err := md.Unmarshal(&d); err != nil {
|
||||||
|
fmt.Println(err)
|
||||||
|
return ErrBadJSON
|
||||||
|
}
|
||||||
|
|
||||||
|
if d.Text == "" {
|
||||||
|
return ErrMissingField("text")
|
||||||
|
}
|
||||||
|
if d.Through == "" {
|
||||||
|
ua := string(md.Ctx.UserAgent())
|
||||||
|
if len(ua) > 20 {
|
||||||
|
ua = ua[:20] + "…"
|
||||||
|
}
|
||||||
|
d.Through = "API"
|
||||||
|
if ua != "" {
|
||||||
|
d.Through += " (" + ua + ")"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if len(d.Through) > 30 {
|
||||||
|
d.Through = d.Through[:30]
|
||||||
|
}
|
||||||
|
|
||||||
|
created := time.Now()
|
||||||
|
_, err := md.DB.Exec("INSERT INTO rap_logs(userid, text, datetime, through) VALUES (?, ?, ?, ?)",
|
||||||
|
md.User.UserID, d.Text, created.Unix(), d.Through)
|
||||||
|
if err != nil {
|
||||||
|
md.Err(err)
|
||||||
|
return Err500
|
||||||
|
}
|
||||||
|
|
||||||
|
var resp rapLogResponse
|
||||||
|
resp.rapLogData = d
|
||||||
|
resp.Author = md.User.UserID
|
||||||
|
resp.CreatedAt = created.Truncate(time.Second)
|
||||||
|
resp.Code = 200
|
||||||
|
|
||||||
|
return resp
|
||||||
|
}
|
||||||
|
|
||||||
|
func rapLog(md common.MethodData, message string) {
|
||||||
|
ua := string(md.Ctx.UserAgent())
|
||||||
|
if len(ua) > 20 {
|
||||||
|
ua = ua[:20] + "…"
|
||||||
|
}
|
||||||
|
through := "API"
|
||||||
|
if ua != "" {
|
||||||
|
through += " (" + ua + ")"
|
||||||
|
}
|
||||||
|
|
||||||
|
_, err := md.DB.Exec("INSERT INTO rap_logs(userid, text, datetime, through) VALUES (?, ?, ?, ?)",
|
||||||
|
md.User.UserID, message, time.Now().Unix(), through)
|
||||||
|
if err != nil {
|
||||||
|
md.Err(err)
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user