github.com/covergates/covergates@v0.2.2-0.20201009050117-42ef8a19fb95/routers/api/user/repo.go (about) 1 package user 2 3 import ( 4 "github.com/covergates/covergates/core" 5 "github.com/covergates/covergates/routers/api/request" 6 "github.com/gin-gonic/gin" 7 ) 8 9 // HandleSynchronizeRepo for the user 10 // @Summary Synchronize user's repository from remote SCM 11 // @Tags User 12 // @Success 200 {string} string "ok" 13 // @Router /user/repos [patch] 14 func HandleSynchronizeRepo(repoService core.RepoService) gin.HandlerFunc { 15 return func(c *gin.Context) { 16 user := request.MustGetUserFrom(c) 17 ctx := c.Request.Context() 18 if err := repoService.Synchronize(ctx, user); err != nil { 19 c.Error(err) 20 c.String(500, err.Error()) 21 return 22 } 23 c.String(200, "ok") 24 } 25 } 26 27 // HandleListRepo for the uer 28 // @Summary List user synchronized repositories 29 // @Tags User 30 // @Success 200 {object} []core.Repo "list of repositories" 31 // @Router /user/repos [get] 32 func HandleListRepo(userStore core.UserStore) gin.HandlerFunc { 33 return func(c *gin.Context) { 34 user := request.MustGetUserFrom(c) 35 repos, err := userStore.ListRepositories(user) 36 if err != nil { 37 c.Error(err) 38 c.JSON(500, []*core.Repo{}) 39 return 40 } 41 c.JSON(200, repos) 42 } 43 }