1
0

Add empty avatar provider (#149)

Fix lint

Add docs for avatar configuration

Add default avatar provider

Co-authored-by: kolaente <k@knt.li>
Reviewed-on: https://kolaente.dev/vikunja/api/pulls/149
This commit is contained in:
konrad
2020-03-01 21:10:25 +00:00
parent 584e3af237
commit cdd068cdb6
6 changed files with 80 additions and 10 deletions

View File

@ -17,7 +17,10 @@
package v1
import (
"code.vikunja.io/api/pkg/config"
"code.vikunja.io/api/pkg/log"
"code.vikunja.io/api/pkg/modules/avatar"
"code.vikunja.io/api/pkg/modules/avatar/empty"
"code.vikunja.io/api/pkg/modules/avatar/gravatar"
user2 "code.vikunja.io/api/pkg/user"
"code.vikunja.io/web/handler"
@ -51,7 +54,13 @@ func GetAvatar(c echo.Context) error {
// Initialize the avatar provider
// For now, we only have one avatar provider, in the future there could be multiple which
// could be changed based on user settings etc.
avatarProvider := gravatar.Provider{}
var avatarProvider avatar.Provider
switch config.AvatarProvider.GetString() {
case "gravatar":
avatarProvider = &gravatar.Provider{}
default:
avatarProvider = &empty.Provider{}
}
size := c.QueryParam("size")
var sizeInt int64 = 250 // Default size of 250
@ -64,11 +73,11 @@ func GetAvatar(c echo.Context) error {
}
// Get the avatar
avatar, mimeType, err := avatarProvider.GetAvatar(user, sizeInt)
a, mimeType, err := avatarProvider.GetAvatar(user, sizeInt)
if err != nil {
log.Errorf("Error getting avatar for user %d: %v", user.ID, err)
return handler.HandleHTTPError(err, c)
}
return c.Blob(http.StatusOK, mimeType, avatar)
return c.Blob(http.StatusOK, mimeType, a)
}