forked from forgejo/forgejo
Add topic support (#3711)
* add topic models and unit tests * fix comments * fix comment * add the UI to show or add topics for a repo * show topics on repositories list * fix test * don't show manage topics link when no permission * use green basic as topic label * fix topic label color * remove trace content * remove debug function
This commit is contained in:
parent
1946ce2954
commit
bec69f702b
17 changed files with 487 additions and 2 deletions
|
@ -571,5 +571,9 @@ func RegisterRoutes(m *macaron.Macaron) {
|
|||
})
|
||||
})
|
||||
}, reqAdmin())
|
||||
|
||||
m.Group("/topics", func() {
|
||||
m.Get("/search", repo.TopicSearch)
|
||||
})
|
||||
}, context.APIContexter())
|
||||
}
|
||||
|
|
|
@ -501,3 +501,45 @@ func MirrorSync(ctx *context.APIContext) {
|
|||
go models.MirrorQueue.Add(repo.ID)
|
||||
ctx.Status(200)
|
||||
}
|
||||
|
||||
// TopicSearch search for creating topic
|
||||
func TopicSearch(ctx *context.Context) {
|
||||
// swagger:operation GET /topics/search repository topicSearch
|
||||
// ---
|
||||
// summary: search topics via keyword
|
||||
// produces:
|
||||
// - application/json
|
||||
// parameters:
|
||||
// - name: keyword
|
||||
// in: path
|
||||
// description: id of the repo to get
|
||||
// type: integer
|
||||
// required: true
|
||||
// responses:
|
||||
// "200":
|
||||
// "$ref": "#/responses/Repository"
|
||||
if ctx.User == nil {
|
||||
ctx.JSON(403, map[string]interface{}{
|
||||
"message": "Only owners could change the topics.",
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
kw := ctx.Query("q")
|
||||
|
||||
topics, err := models.FindTopics(&models.FindTopicOptions{
|
||||
Keyword: kw,
|
||||
Limit: 10,
|
||||
})
|
||||
if err != nil {
|
||||
log.Error(2, "SearchTopics failed: %v", err)
|
||||
ctx.JSON(500, map[string]interface{}{
|
||||
"message": "Search topics failed.",
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
ctx.JSON(200, map[string]interface{}{
|
||||
"topics": topics,
|
||||
})
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue