feat: read/write improved names/pronouns for users, read/write improved fields/names/pronouns for members

This commit is contained in:
Sam 2023-01-31 00:50:17 +01:00
parent c6537c920d
commit d6017f1edf
Signed by: sam
GPG key ID: B4EF20DDE721CAA1
11 changed files with 231 additions and 370 deletions

View file

@ -22,8 +22,8 @@ type User struct {
AvatarURLs []string `db:"avatar_urls"`
Links []string
Names []Name
Pronouns []Pronoun
Names []FieldEntry
Pronouns []PronounEntry
Discord *string
DiscordUsername *string
@ -133,7 +133,7 @@ func (db *DB) getUser(ctx context.Context, q querier, id xid.ID) (u User, err er
DisplayName: qu.DisplayName,
Bio: qu.Bio,
AvatarURLs: qu.AvatarUrls,
Names: namesFromDB(qu.Names),
Names: fieldEntriesFromDB(qu.Names),
Pronouns: pronounsFromDB(qu.Pronouns),
Links: qu.Links,
Discord: qu.Discord,
@ -171,7 +171,7 @@ func (db *DB) Username(ctx context.Context, name string) (u User, err error) {
DisplayName: qu.DisplayName,
Bio: qu.Bio,
AvatarURLs: qu.AvatarUrls,
Names: namesFromDB(qu.Names),
Names: fieldEntriesFromDB(qu.Names),
Pronouns: pronounsFromDB(qu.Pronouns),
Links: qu.Links,
Discord: qu.Discord,
@ -260,15 +260,19 @@ func (db *DB) UpdateUser(
}
}
sql, args, err := builder.Suffix("RETURNING *").ToSql()
sql, args, err := builder.ToSql()
if err != nil {
return u, errors.Wrap(err, "building sql")
}
err = pgxscan.Get(ctx, tx, &u, sql, args...)
_, err = tx.Exec(ctx, sql, args...)
if err != nil {
return u, errors.Wrap(err, "executing sql")
}
u, err = db.getUser(ctx, tx, id)
if err != nil {
return u, errors.Wrap(err, "getting updated user")
}
return u, nil
}