Skip to content

Commit

Permalink
feat: add admin get api
Browse files Browse the repository at this point in the history
  • Loading branch information
lanthora committed Jul 23, 2024
1 parent dcc5e65 commit 03dc5a2
Show file tree
Hide file tree
Showing 4 changed files with 57 additions and 4 deletions.
48 changes: 46 additions & 2 deletions api/admin.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ package api
import (
"strconv"
"strings"
"time"

"github.com/gin-gonic/gin"
"github.com/google/uuid"
Expand All @@ -25,6 +26,31 @@ func AdminMiddleware() gin.HandlerFunc {
}
}

func AdminShowUsers(c *gin.Context) {
users := model.GetUsers()

type userinfo struct {
UserID uint `json:"userid"`
Username string `json:"username"`
Role string `json:"role"`
RegTime string `json:"regtime"`
}

response := make([]userinfo, 0)
for _, u := range users {
response = append(response, userinfo{
UserID: u.ID,
Username: u.Name,
Role: u.Role,
RegTime: u.CreatedAt.Format(time.DateTime),
})
}

status.UpdateSuccess(c, gin.H{
"users": response,
})
}

func AdminAddUser(c *gin.Context) {
var request struct {
Username string `json:"username"`
Expand Down Expand Up @@ -81,6 +107,13 @@ func AdminAddUser(c *gin.Context) {
candy.InsertNet(modelNet)
}

func AdminGetOpenRegisterConfig(c *gin.Context) {
openreg := model.GetConfig("openreg", "true") == "true"
status.UpdateSuccess(c, gin.H{
"openreg": openreg,
})
}

func AdminSetOpenRegisterConfig(c *gin.Context) {
var request struct {
OpenReg bool `json:"openreg"`
Expand All @@ -94,7 +127,18 @@ func AdminSetOpenRegisterConfig(c *gin.Context) {
} else {
model.SetConfig("openreg", "false")
}
status.UpdateSuccess(c, nil)
status.UpdateSuccess(c, gin.H{})
}

func AdminGetRegisterIntervalConfig(c *gin.Context) {
intervalStr := model.GetConfig("reginterval", "1440")
interval, err := strconv.Atoi(intervalStr)
if err != nil {
interval = 1440
}
status.UpdateSuccess(c, gin.H{
"reginterval": interval,
})
}

func AdminSetRegisterIntervalConfig(c *gin.Context) {
Expand All @@ -107,5 +151,5 @@ func AdminSetRegisterIntervalConfig(c *gin.Context) {
}

model.SetConfig("reginterval", strconv.FormatUint(uint64(request.RegInterval), 10))
status.UpdateSuccess(c, nil)
status.UpdateSuccess(c, gin.H{})
}
4 changes: 2 additions & 2 deletions api/user.go
Original file line number Diff line number Diff line change
Expand Up @@ -197,7 +197,7 @@ func UserLogout(c *gin.Context) {
c.SetCookie("id", "", -1, "/", "", false, true)
c.SetCookie("token", "", -1, "/", "", false, true)

status.UpdateSuccess(c, nil)
status.UpdateSuccess(c, gin.H{})
}

func ChangePassword(c *gin.Context) {
Expand Down Expand Up @@ -229,7 +229,7 @@ func ChangePassword(c *gin.Context) {
c.SetCookie("id", strconv.FormatUint(uint64(user.ID), 10), 86400, "/", "", false, true)
c.SetCookie("token", user.Token, 86400, "/", "", false, true)

status.UpdateSuccess(c, nil)
status.UpdateSuccess(c, gin.H{})
}

func isInvalidUsername(username string) bool {
Expand Down
3 changes: 3 additions & 0 deletions main.go
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,11 @@ func main() {
r.Use(candy.WebsocketMiddleware(), api.LoginMiddleware(), api.AdminMiddleware())

admin := r.Group("/api/admin")
admin.POST("/showUsers", api.AdminShowUsers)
admin.POST("/addUser", api.AdminAddUser)
admin.POST("/getOpenRegisterConfig", api.AdminGetOpenRegisterConfig)
admin.POST("/setOpenRegisterConfig", api.AdminSetOpenRegisterConfig)
admin.POST("/getRegisterIntervalConfig", api.AdminGetRegisterIntervalConfig)
admin.POST("/setRegisterIntervalConfig", api.AdminSetRegisterIntervalConfig)

user := r.Group("/api/user")
Expand Down
6 changes: 6 additions & 0 deletions model/user.go
Original file line number Diff line number Diff line change
Expand Up @@ -27,3 +27,9 @@ func (u *User) Save() {
db := storage.Get()
db.Save(u)
}

func GetUsers() (users []User) {
db := storage.Get()
db.Find(&users)
return
}

0 comments on commit 03dc5a2

Please sign in to comment.