mirror of
https://github.com/superseriousbusiness/gotosocial
synced 2025-06-05 21:59:39 +02:00
@@ -30,12 +30,19 @@ import (
|
||||
|
||||
// Create creates one a new list for the given account, using the provided parameters.
|
||||
// These params should have already been validated by the time they reach this function.
|
||||
func (p *Processor) Create(ctx context.Context, account *gtsmodel.Account, title string, repliesPolicy gtsmodel.RepliesPolicy) (*apimodel.List, gtserror.WithCode) {
|
||||
func (p *Processor) Create(
|
||||
ctx context.Context,
|
||||
account *gtsmodel.Account,
|
||||
title string,
|
||||
repliesPolicy gtsmodel.RepliesPolicy,
|
||||
exclusive bool,
|
||||
) (*apimodel.List, gtserror.WithCode) {
|
||||
list := >smodel.List{
|
||||
ID: id.NewULID(),
|
||||
Title: title,
|
||||
AccountID: account.ID,
|
||||
RepliesPolicy: repliesPolicy,
|
||||
Exclusive: &exclusive,
|
||||
}
|
||||
|
||||
if err := p.state.DB.PutList(ctx, list); err != nil {
|
||||
|
@@ -47,7 +47,7 @@ func (p *Processor) Get(ctx context.Context, account *gtsmodel.Account, id strin
|
||||
return p.apiList(ctx, list)
|
||||
}
|
||||
|
||||
// GetMultiple returns multiple lists created by the given account, sorted by list ID DESC (newest first).
|
||||
// GetAll returns multiple lists created by the given account, sorted by list ID DESC (newest first).
|
||||
func (p *Processor) GetAll(ctx context.Context, account *gtsmodel.Account) ([]*apimodel.List, gtserror.WithCode) {
|
||||
lists, err := p.state.DB.GetListsForAccountID(
|
||||
// Use barebones ctx; no embedded
|
||||
|
@@ -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")
|
||||
|
Reference in New Issue
Block a user