[feature] Implement exclusive lists (#3280)

Fixes #2616
This commit is contained in:
Vyr Cossont
2024-09-09 15:56:58 -07:00
committed by GitHub
parent 5543fd5340
commit 540edef0c2
15 changed files with 597 additions and 54 deletions

View File

@ -36,6 +36,7 @@ func (p *Processor) Update(
id string,
title *string,
repliesPolicy *gtsmodel.RepliesPolicy,
exclusive *bool,
) (*apimodel.List, gtserror.WithCode) {
list, errWithCode := p.getList(
// Use barebones ctx; no embedded
@ -49,7 +50,7 @@ func (p *Processor) Update(
}
// Only update columns we're told to update.
columns := make([]string, 0, 2)
columns := make([]string, 0, 3)
if title != nil {
list.Title = *title
@ -61,6 +62,11 @@ func (p *Processor) Update(
columns = append(columns, "replies_policy")
}
if exclusive != nil {
list.Exclusive = exclusive
columns = append(columns, "exclusive")
}
if err := p.state.DB.UpdateList(ctx, list, columns...); err != nil {
if errors.Is(err, db.ErrAlreadyExists) {
err = errors.New("you already have a list with this title")