fix: allow to set is_enable separately in problem/create

This commit is contained in:
Paul Pan 2023-12-23 17:37:13 +08:00
parent 0fc977a5e0
commit 976f2700ef
Signed by: Paul
GPG Key ID: D639BDF5BA578AF4

View File

@ -10,8 +10,8 @@ import (
type updateRequest struct { type updateRequest struct {
Pid uint `form:"pid" json:"pid"` Pid uint `form:"pid" json:"pid"`
Title string `form:"title" json:"title" binding:"required"` Title string `form:"title" json:"title"`
Statement string `form:"statement" json:"statement" binding:"required"` Statement string `form:"statement" json:"statement"`
IsEnabled bool `form:"is_enabled" json:"is_enabled"` IsEnabled bool `form:"is_enabled" json:"is_enabled"`
} }
@ -22,8 +22,8 @@ type updateRequest struct {
// @Accept application/x-www-form-urlencoded // @Accept application/x-www-form-urlencoded
// @Produce json // @Produce json
// @Param pid formData int false "problem id, 0 for create" // @Param pid formData int false "problem id, 0 for create"
// @Param title formData string true "title" // @Param title formData string false "title"
// @Param statement formData string true "statement" // @Param statement formData string false "statement"
// @Param is_enabled formData bool false "is enabled" // @Param is_enabled formData bool false "is enabled"
// @Response 200 {object} e.Response[model.Problem] "problem info without provider information" // @Response 200 {object} e.Response[model.Problem] "problem info without provider information"
// @Security Authentication // @Security Authentication
@ -50,8 +50,13 @@ func (h *handler) Update(c *gin.Context) {
return return
} }
if req.Pid == 0 { if req.Pid == 0 { // create problem
// create problem // Title and Statement are required
if req.Title == "" || req.Statement == "" {
e.Pong[any](c, e.InvalidParameter, nil)
return
}
createData := &problem.CreateData{ createData := &problem.CreateData{
Title: req.Title, Title: req.Title,
Statement: req.Statement, Statement: req.Statement,
@ -61,9 +66,7 @@ func (h *handler) Update(c *gin.Context) {
p, status := h.problemService.Create(createData) p, status := h.problemService.Create(createData)
e.Pong(c, status, p) e.Pong(c, status, p)
return return
} else { } else { // update problem
// update problem
// check if problem exists // check if problem exists
p, status := h.problemService.Query(req.Pid, true, false) p, status := h.problemService.Query(req.Pid, true, false)
if status != e.Success { if status != e.Success {