Backward compatibility (username vs. login)

Reintroduce the username field for user object on JSON marshal to fix backward
compatibility. Fixes Drone 0.4 compatibility issues.
This commit is contained in:
Martin Hebnes Pedersen 2016-12-15 17:13:48 +01:00 committed by Kim "BKC" Carlbäcker
parent 559190dbdc
commit 76837c0ea4

View file

@ -5,6 +5,7 @@
package gitea package gitea
import ( import (
"encoding/json"
"fmt" "fmt"
) )
@ -17,6 +18,16 @@ type User struct {
AvatarURL string `json:"avatar_url"` AvatarURL string `json:"avatar_url"`
} }
// MarshalJSON implements the json.Marshaler interface for User, adding field(s) for backward compatibility
func (u User) MarshalJSON() ([]byte, error) {
// Re-declaring User to avoid recursion
type shadow User
return json.Marshal(struct {
shadow
CompatUserName string `json:"username"`
}{shadow(u), u.UserName})
}
// GetUserInfo get user info by user's name // GetUserInfo get user info by user's name
func (c *Client) GetUserInfo(user string) (*User, error) { func (c *Client) GetUserInfo(user string) (*User, error) {
u := new(User) u := new(User)