[API] User expose counters (#16167)

release/v1.15
6543 2021-06-17 09:17:35 +02:00 committed by GitHub
parent 9469e14dc6
commit c9d053f0ca
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 25 additions and 0 deletions

View File

@ -48,6 +48,10 @@ func toUser(user *models.User, signed, authed bool) *api.User {
Location: user.Location, Location: user.Location,
Website: user.Website, Website: user.Website,
Description: user.Description, Description: user.Description,
// counter's
Followers: user.NumFollowers,
Following: user.NumFollowing,
StarredRepos: user.NumStars,
} }
// hide primary email if API caller is anonymous or user keep email private // hide primary email if API caller is anonymous or user keep email private
if signed && (!user.KeepEmailPrivate || authed) { if signed && (!user.KeepEmailPrivate || authed) {

View File

@ -43,6 +43,11 @@ type User struct {
Website string `json:"website"` Website string `json:"website"`
// the user's description // the user's description
Description string `json:"description"` Description string `json:"description"`
// user counts
Followers int `json:"followers_count"`
Following int `json:"following_count"`
StarredRepos int `json:"starred_repos_count"`
} }
// MarshalJSON implements the json.Marshaler interface for User, adding field(s) for backward compatibility // MarshalJSON implements the json.Marshaler interface for User, adding field(s) for backward compatibility

View File

@ -16345,6 +16345,17 @@
"format": "email", "format": "email",
"x-go-name": "Email" "x-go-name": "Email"
}, },
"followers_count": {
"description": "user counts",
"type": "integer",
"format": "int64",
"x-go-name": "Followers"
},
"following_count": {
"type": "integer",
"format": "int64",
"x-go-name": "Following"
},
"full_name": { "full_name": {
"description": "the user's full name", "description": "the user's full name",
"type": "string", "type": "string",
@ -16391,6 +16402,11 @@
"type": "boolean", "type": "boolean",
"x-go-name": "Restricted" "x-go-name": "Restricted"
}, },
"starred_repos_count": {
"type": "integer",
"format": "int64",
"x-go-name": "StarredRepos"
},
"website": { "website": {
"description": "the user's website", "description": "the user's website",
"type": "string", "type": "string",