New route to expose PGP Keys

This commit is contained in:
nemunaire 2022-09-10 12:14:11 +02:00
parent f184c7d8de
commit 376a059541
3 changed files with 35 additions and 16 deletions

30
keys.go
View file

@ -13,6 +13,36 @@ import (
"github.com/gin-gonic/gin"
)
func declareAPIKeysRoutes(router *gin.RouterGroup) {
usersRoutes := router.Group("/users/:uid")
usersRoutes.Use(userHandler)
usersRoutes.GET("/pgp_keys", func(c *gin.Context) {
var u *User
if user, ok := c.Get("user"); ok {
u = user.(*User)
} else {
u = c.MustGet("LoggedUser").(*User)
}
keys, err := u.GetKeys()
if err != nil {
log.Println("Unable to GetKeys:", err)
c.AbortWithStatusJSON(http.StatusInternalServerError, gin.H{"errmsg": "Unable to retrieve your keys. Please try again in a few moment."})
return
}
var ret []byte
for _, key := range keys {
if key.Type == "pgp" {
ret = append(ret, []byte(key.Content)...)
}
}
c.Data(http.StatusOK, "application/pgp-keys", ret)
})
}
func declareAPIAuthKeysRoutes(router *gin.RouterGroup) {
router.GET("/keys", func(c *gin.Context) {
var u *User