feat(backend): always return empty arrays instead of null

This commit is contained in:
Sam 2023-03-12 01:31:31 +01:00
parent b8a7e7443d
commit 0e72097346
Signed by: sam
GPG key ID: B4EF20DDE721CAA1
6 changed files with 61 additions and 35 deletions

View file

@ -32,18 +32,18 @@ func dbMemberToMember(u db.User, m db.Member, fields []db.Field) GetMemberRespon
Name: m.Name,
DisplayName: m.DisplayName,
Bio: m.Bio,
AvatarURLs: m.AvatarURLs,
Links: m.Links,
AvatarURLs: db.NotNull(m.AvatarURLs),
Links: db.NotNull(m.Links),
Names: m.Names,
Pronouns: m.Pronouns,
Fields: fields,
Names: db.NotNull(m.Names),
Pronouns: db.NotNull(m.Pronouns),
Fields: db.NotNull(fields),
User: PartialUser{
ID: u.ID,
Username: u.Username,
DisplayName: u.DisplayName,
AvatarURLs: u.AvatarURLs,
AvatarURLs: db.NotNull(u.AvatarURLs),
},
}
}

View file

@ -11,12 +11,14 @@ import (
)
type memberListResponse struct {
ID xid.ID `json:"id"`
Name string `json:"name"`
DisplayName *string `json:"display_name"`
Bio *string `json:"bio"`
AvatarURLs []string `json:"avatar_urls"`
Links []string `json:"links"`
ID xid.ID `json:"id"`
Name string `json:"name"`
DisplayName *string `json:"display_name"`
Bio *string `json:"bio"`
AvatarURLs []string `json:"avatar_urls"`
Links []string `json:"links"`
Names []db.FieldEntry `json:"names"`
Pronouns []db.PronounEntry `json:"pronouns"`
}
func membersToMemberList(ms []db.Member) []memberListResponse {
@ -26,8 +28,10 @@ func membersToMemberList(ms []db.Member) []memberListResponse {
ID: ms[i].ID,
Name: ms[i].Name,
Bio: ms[i].Bio,
AvatarURLs: ms[i].AvatarURLs,
Links: ms[i].Links,
AvatarURLs: db.NotNull(ms[i].AvatarURLs),
Links: db.NotNull(ms[i].Links),
Names: db.NotNull(ms[i].Names),
Pronouns: db.NotNull(ms[i].Pronouns),
}
}

View file

@ -68,6 +68,13 @@ func (s *Server) patchMember(w http.ResponseWriter, r *http.Request) error {
}
}
if req.Name != nil && *req.Name == "" {
return server.APIError{
Code: server.ErrBadRequest,
Details: "Name must not be empty",
}
}
// validate display name/bio
if req.Name != nil && len(*req.Name) > db.MaxMemberNameLength {
return server.APIError{