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  }