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/beatmaps/rank_requests", v1.BeatmapRankRequestsSubmitPOST, common.PrivilegeWrite)
|
||||
|
||||
// Admin: RAP
|
||||
r.POSTMethod("/api/v1/rap/log", v1.RAPLogPOST)
|
||||
|
||||
// Admin: beatmap
|
||||
r.POSTMethod("/api/v1/beatmaps/set_status", v1.BeatmapSetStatusPOST, 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))
|
||||
}
|
||||
|
||||
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) {
|
||||
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 = ?",
|
||||
|
|
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