mirror of
https://github.com/superseriousbusiness/gotosocial.git
synced 2025-10-29 19:32:26 -05:00
parent
5543fd5340
commit
540edef0c2
15 changed files with 597 additions and 54 deletions
|
|
@ -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")
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue