diff options
Diffstat (limited to 'internal/processing/status/create.go')
-rw-r--r-- | internal/processing/status/create.go | 41 |
1 files changed, 30 insertions, 11 deletions
diff --git a/internal/processing/status/create.go b/internal/processing/status/create.go index fc112ed8b..2e0b30ad8 100644 --- a/internal/processing/status/create.go +++ b/internal/processing/status/create.go @@ -1,6 +1,25 @@ +/* + GoToSocial + Copyright (C) 2021 GoToSocial Authors admin@gotosocial.org + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + package status import ( + "context" "fmt" "time" @@ -12,7 +31,7 @@ import ( "github.com/superseriousbusiness/gotosocial/internal/util" ) -func (p *processor) Create(account *gtsmodel.Account, application *gtsmodel.Application, form *apimodel.AdvancedStatusCreateForm) (*apimodel.Status, gtserror.WithCode) { +func (p *processor) Create(ctx context.Context, account *gtsmodel.Account, application *gtsmodel.Application, form *apimodel.AdvancedStatusCreateForm) (*apimodel.Status, gtserror.WithCode) { uris := util.GenerateURIsForAccount(account.Username, p.config.Protocol, p.config.Host) thisStatusID, err := id.NewULID() if err != nil { @@ -38,40 +57,40 @@ func (p *processor) Create(account *gtsmodel.Account, application *gtsmodel.Appl Text: form.Status, } - if err := p.ProcessReplyToID(form, account.ID, newStatus); err != nil { + if err := p.ProcessReplyToID(ctx, form, account.ID, newStatus); err != nil { return nil, gtserror.NewErrorInternalError(err) } - if err := p.ProcessMediaIDs(form, account.ID, newStatus); err != nil { + if err := p.ProcessMediaIDs(ctx, form, account.ID, newStatus); err != nil { return nil, gtserror.NewErrorInternalError(err) } - if err := p.ProcessVisibility(form, account.Privacy, newStatus); err != nil { + if err := p.ProcessVisibility(ctx, form, account.Privacy, newStatus); err != nil { return nil, gtserror.NewErrorInternalError(err) } - if err := p.ProcessLanguage(form, account.Language, newStatus); err != nil { + if err := p.ProcessLanguage(ctx, form, account.Language, newStatus); err != nil { return nil, gtserror.NewErrorInternalError(err) } - if err := p.ProcessMentions(form, account.ID, newStatus); err != nil { + if err := p.ProcessMentions(ctx, form, account.ID, newStatus); err != nil { return nil, gtserror.NewErrorInternalError(err) } - if err := p.ProcessTags(form, account.ID, newStatus); err != nil { + if err := p.ProcessTags(ctx, form, account.ID, newStatus); err != nil { return nil, gtserror.NewErrorInternalError(err) } - if err := p.ProcessEmojis(form, account.ID, newStatus); err != nil { + if err := p.ProcessEmojis(ctx, form, account.ID, newStatus); err != nil { return nil, gtserror.NewErrorInternalError(err) } - if err := p.ProcessContent(form, account.ID, newStatus); err != nil { + if err := p.ProcessContent(ctx, form, account.ID, newStatus); err != nil { return nil, gtserror.NewErrorInternalError(err) } // put the new status in the database - if err := p.db.PutStatus(newStatus); err != nil { + if err := p.db.PutStatus(ctx, newStatus); err != nil { return nil, gtserror.NewErrorInternalError(err) } @@ -84,7 +103,7 @@ func (p *processor) Create(account *gtsmodel.Account, application *gtsmodel.Appl } // return the frontend representation of the new status to the submitter - mastoStatus, err := p.tc.StatusToMasto(newStatus, account) + mastoStatus, err := p.tc.StatusToMasto(ctx, newStatus, account) if err != nil { return nil, gtserror.NewErrorInternalError(fmt.Errorf("error converting status %s to frontend representation: %s", newStatus.ID, err)) } |