76 lines
1.5 KiB
Go
76 lines
1.5 KiB
Go
package server
|
|
|
|
import (
|
|
"github.com/gin-gonic/gin"
|
|
"github.com/gin-gonic/gin/binding"
|
|
|
|
"github.com/drone/drone/common"
|
|
"github.com/drone/drone/common/gravatar"
|
|
)
|
|
|
|
// GetUserCurr accepts a request to retrieve the
|
|
// currently authenticated user from the datastore
|
|
// and return in JSON format.
|
|
//
|
|
// GET /api/user
|
|
//
|
|
func GetUserCurr(c *gin.Context) {
|
|
c.JSON(200, ToUser(c))
|
|
}
|
|
|
|
// PutUserCurr accepts a request to update the currently
|
|
// authenticated User profile.
|
|
//
|
|
// PUT /api/user
|
|
//
|
|
func PutUserCurr(c *gin.Context) {
|
|
ds := ToDatastore(c)
|
|
me := ToUser(c)
|
|
|
|
in := &common.User{}
|
|
if !c.BindWith(in, binding.JSON) {
|
|
return
|
|
}
|
|
me.Email = in.Email
|
|
me.Gravatar = gravatar.Generate(in.Email)
|
|
err := ds.UpdateUser(me)
|
|
if err != nil {
|
|
c.Fail(400, err)
|
|
} else {
|
|
c.JSON(200, me)
|
|
}
|
|
}
|
|
|
|
// GetUserRepos accepts a request to get the currently
|
|
// authenticated user's repository list from the datastore,
|
|
// encoded and returned in JSON format.
|
|
//
|
|
// GET /api/user/repos
|
|
//
|
|
func GetUserRepos(c *gin.Context) {
|
|
ds := ToDatastore(c)
|
|
me := ToUser(c)
|
|
repos, err := ds.GetUserRepos(me.Login)
|
|
if err != nil {
|
|
c.Fail(400, err)
|
|
} else {
|
|
c.JSON(200, &repos)
|
|
}
|
|
}
|
|
|
|
// GetUserTokens accepts a request to get the currently
|
|
// authenticated user's token list from the datastore,
|
|
// encoded and returned in JSON format.
|
|
//
|
|
// GET /api/user/tokens
|
|
//
|
|
func GetUserTokens(c *gin.Context) {
|
|
// ds := ToDatastore(c)
|
|
// me := ToUser(c)
|
|
// tokens, err := ds.GetUserTokens(me.Login)
|
|
// if err != nil {
|
|
// c.Fail(400, err)
|
|
// } else {
|
|
// c.JSON(200, &repos)
|
|
// }
|
|
}
|