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