diff options
Diffstat (limited to 'routers/repo/topic.go')
-rw-r--r-- | routers/repo/topic.go | 21 |
1 files changed, 4 insertions, 17 deletions
diff --git a/routers/repo/topic.go b/routers/repo/topic.go index 4a1194bc2d..b23023ceba 100644 --- a/routers/repo/topic.go +++ b/routers/repo/topic.go @@ -27,24 +27,11 @@ func TopicsPost(ctx *context.Context) { topics = strings.Split(topicsStr, ",") } - invalidTopics := make([]string, 0) - i := 0 - for _, topic := range topics { - topic = strings.TrimSpace(strings.ToLower(topic)) - // ignore empty string - if len(topic) > 0 { - topics[i] = topic - i++ - } - if !models.ValidateTopic(topic) { - invalidTopics = append(invalidTopics, topic) - } - } - topics = topics[:i] + validTopics, invalidTopics := models.SanitizeAndValidateTopics(topics) - if len(topics) > 25 { + if len(validTopics) > 25 { ctx.JSON(422, map[string]interface{}{ - "invalidTopics": topics[:0], + "invalidTopics": nil, "message": ctx.Tr("repo.topic.count_prompt"), }) return @@ -58,7 +45,7 @@ func TopicsPost(ctx *context.Context) { return } - err := models.SaveTopics(ctx.Repo.Repository.ID, topics...) + err := models.SaveTopics(ctx.Repo.Repository.ID, validTopics...) if err != nil { log.Error("SaveTopics failed: %v", err) ctx.JSON(500, map[string]interface{}{ |