Add event query api

Signed-off-by: Asai Neko <sugar@sne.moe>
This commit is contained in:
2025-12-28 01:05:47 +08:00
parent b6003544c8
commit b3fe91444d
8 changed files with 79 additions and 43 deletions

View File

@@ -99,10 +99,9 @@ func VerifyMagicLink(c *gin.Context) {
// Generate jwt
JwtTool := cryptography.Token{
UserID: user.UserId,
Application: viper.GetString("server.application"),
}
accessToken, refreshToken, err := JwtTool.IssueTokens()
accessToken, refreshToken, err := JwtTool.IssueTokens(user.UserId)
if err != nil {
c.JSON(500, gin.H{
"status": "error generating tokens",

View File

@@ -13,7 +13,7 @@ func Refresh(c *gin.Context) {
}
if err := c.ShouldBindJSON(&req); err != nil {
c.JSON(400, gin.H{"error": "invalid request"})
c.JSON(400, gin.H{"status": "invalid request"})
return
}
@@ -23,18 +23,13 @@ func Refresh(c *gin.Context) {
access, err := JwtTool.RefreshAccessToken(req.RefreshToken)
if err != nil {
c.JSON(401, gin.H{"error": "invalid refresh token"})
c.JSON(401, gin.H{"status": "invalid refresh token"})
return
}
err = JwtTool.RevokeRefreshToken(req.RefreshToken)
refresh, err := JwtTool.RenewRefreshToken(req.RefreshToken)
if err != nil {
c.JSON(500, gin.H{"status": "cannot revoke refresh token"})
}
refresh, err := JwtTool.GenerateRefreshToken()
if err != nil {
c.JSON(401, gin.H{"status": "cannot generate new refresh token"})
c.JSON(500, gin.H{"statis": "error renew refresh token"})
}
c.JSON(200, gin.H{

View File

@@ -1,7 +1,13 @@
package event
import "github.com/gin-gonic/gin"
import (
"nixcn-cms/middleware"
"github.com/gin-gonic/gin"
)
func Handler(r *gin.RouterGroup) {
r.Use(middleware.JWTAuth())
r.GET("/info", Info)
r.GET("/query", Query)
}

36
service/event/query.go Normal file
View File

@@ -0,0 +1,36 @@
package event
import (
"nixcn-cms/data"
"github.com/gin-gonic/gin"
"github.com/google/uuid"
)
func Query(c *gin.Context) {
userId, ok := c.Get("user_id")
if !ok {
c.JSON(400, gin.H{"status": "could not found user_id"})
return
}
eventId, ok := c.GetQuery("event_id")
if !ok {
c.JSON(400, gin.H{"status": "could not found event_id"})
return
}
data := new(data.User)
err := data.GetByUserId(userId.(uuid.UUID))
if err != nil {
c.JSON(404, gin.H{"status": "cannot found user"})
return
}
if data.Checkin[eventId] == nil {
c.JSON(404, gin.H{"status": "cannot found user checked in"})
return
}
c.JSON(200, gin.H{
"checkin_time": data.Checkin[eventId],
})
}

View File

@@ -9,7 +9,7 @@ import (
func Handler(r *gin.RouterGroup) {
r.Use(middleware.JWTAuth())
r.GET("/info", Info)
r.POST("/checkin", Checkin)
r.GET("/checkin", Checkin)
r.POST("/checkin/submit", CheckinSubmit)
r.PATCH("/update", Update)
r.GET("/list", List)