diff --git a/app/module/articles/request/articles.request.go b/app/module/articles/request/articles.request.go index 6cc1e55..7ca403d 100644 --- a/app/module/articles/request/articles.request.go +++ b/app/module/articles/request/articles.request.go @@ -36,7 +36,7 @@ type ArticlesCreateRequest struct { Slug string `json:"slug" validate:"required"` Description string `json:"description" validate:"required"` HtmlDescription string `json:"htmlDescription" validate:"required"` - CategoryIds string `json:"categoryIds" validate:"required"` + CategoryIds string `json:"categoryIds" validate:"omitempty"` TypeId int `json:"typeId" validate:"required"` Tags string `json:"tags" validate:"required"` AiArticleId *int `json:"aiArticleId"` @@ -71,7 +71,7 @@ type ArticlesUpdateRequest struct { Slug string `json:"slug" validate:"required"` Description string `json:"description" validate:"required"` HtmlDescription string `json:"htmlDescription" validate:"required"` - CategoryIds string `json:"categoryIds" validate:"required"` + CategoryIds string `json:"categoryIds" validate:"omitempty"` TypeId int `json:"typeId" validate:"required"` Tags string `json:"tags" validate:"required"` CreatedAt *string `json:"createdAt"` diff --git a/app/module/articles/service/articles.service.go b/app/module/articles/service/articles.service.go index 82f532f..b4e77d6 100644 --- a/app/module/articles/service/articles.service.go +++ b/app/module/articles/service/articles.service.go @@ -336,14 +336,23 @@ func (_i *articlesService) Save(clientId *uuid.UUID, req request.ArticlesCreateR } var categoryIds []string - if req.CategoryIds != "" { - categoryIds = strings.Split(req.CategoryIds, ",") + if strings.TrimSpace(req.CategoryIds) != "" { + for _, part := range strings.Split(req.CategoryIds, ",") { + part = strings.TrimSpace(part) + if part == "" { + continue + } + categoryIds = append(categoryIds, part) + } } _i.Log.Info().Interface("categoryIds", categoryIds).Msg("") for _, categoryId := range categoryIds { - categoryIdInt, _ := strconv.Atoi(categoryId) + categoryIdInt, parseErr := strconv.Atoi(categoryId) + if parseErr != nil || categoryIdInt <= 0 { + continue + } _i.Log.Info().Interface("categoryIdUint", uint(categoryIdInt)).Msg("")