修复bug
This commit is contained in:
@@ -23,6 +23,43 @@ type CrDb struct {
|
|||||||
Visible int `json:"visible"`
|
Visible int `json:"visible"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//GetAllChallenges 获取所有题目
|
||||||
|
func GetAllChallenges(c *gin.Context) {
|
||||||
|
var challenges []Challenge
|
||||||
|
if err := getchallenge(&challenges); err != nil {
|
||||||
|
fmt.Println(err)
|
||||||
|
c.JSON(400, gin.H{"code": 400, "msg": "Get all challenges failure!"})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
c.JSON(200, gin.H{"code": 200, "data": challenges})
|
||||||
|
}
|
||||||
|
|
||||||
|
//getchallenge 获取题目
|
||||||
|
func getchallenge(challenge *[]Challenge) error {
|
||||||
|
var attachmentString, hints string
|
||||||
|
api.Link()
|
||||||
|
DB := db.DBsnctf
|
||||||
|
command := "SELECT * FROM challenge;"
|
||||||
|
rows, err := DB.Raw(command).Rows()
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
defer rows.Close()
|
||||||
|
for rows.Next() {
|
||||||
|
var b Challenge
|
||||||
|
err := rows.Scan(&b.ID, &b.Name, &b.Score, &b.Flag, &b.Description, &attachmentString, &b.Category, &b.Tags, &hints, &b.Visible)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
b.Attachment = strings.Split(attachmentString, ",")
|
||||||
|
b.Hints = strings.Split(hints, ",")
|
||||||
|
|
||||||
|
*challenge = append(*challenge, b)
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
//NewChallenge 新建一个题目
|
//NewChallenge 新建一个题目
|
||||||
func NewChallenge(c *gin.Context) {
|
func NewChallenge(c *gin.Context) {
|
||||||
var request ChallengeRequest
|
var request ChallengeRequest
|
||||||
|
@@ -66,6 +66,8 @@ func Initrouter() {
|
|||||||
manager.POST("/challenge", admin.NewChallenge)
|
manager.POST("/challenge", admin.NewChallenge)
|
||||||
// 删除题目 测试通过,但是分数不会同步删除
|
// 删除题目 测试通过,但是分数不会同步删除
|
||||||
manager.DELETE("/challenge/:id", admin.DelChallenge)
|
manager.DELETE("/challenge/:id", admin.DelChallenge)
|
||||||
|
// 获取所有题目,包括不可见题目
|
||||||
|
manager.GET("/challenges", admin.GetAllChallenges)
|
||||||
// 更新题目信息
|
// 更新题目信息
|
||||||
manager.PUT("/challenge/:id", admin.EditChallenge)
|
manager.PUT("/challenge/:id", admin.EditChallenge)
|
||||||
//创建新公告
|
//创建新公告
|
||||||
|
@@ -12,6 +12,18 @@ type ChallengeRequest struct {
|
|||||||
Hints []string `json:"hints"`
|
Hints []string `json:"hints"`
|
||||||
Visible int `json:"visible"`
|
Visible int `json:"visible"`
|
||||||
}
|
}
|
||||||
|
type ChallengeRequest2 struct {
|
||||||
|
Id int `json:"id"`
|
||||||
|
Name string `json:"name" binding:"required"`
|
||||||
|
Score int `json:"score" binding:"required"`
|
||||||
|
Flag string `json:"flag"` // 暂时一个题只能一个flag
|
||||||
|
Description string `json:"description"`
|
||||||
|
Attachment []string `json:"attachment"`
|
||||||
|
Category string `json:"category" binding:"required"`
|
||||||
|
Tags string `json:"tags"`
|
||||||
|
Hints []string `json:"hints"`
|
||||||
|
Visible int `json:"visible"`
|
||||||
|
}
|
||||||
|
|
||||||
// NoticeRequest 定义新增公告的一个请求
|
// NoticeRequest 定义新增公告的一个请求
|
||||||
type NoticeRequest struct {
|
type NoticeRequest struct {
|
||||||
|
Reference in New Issue
Block a user