diff options
Diffstat (limited to 'internal/processing/status/get.go')
-rw-r--r-- | internal/processing/status/get.go | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/internal/processing/status/get.go b/internal/processing/status/get.go index 170dd0e53..ae6918e3f 100644 --- a/internal/processing/status/get.go +++ b/internal/processing/status/get.go @@ -36,6 +36,21 @@ func (p *Processor) Get(ctx context.Context, requestingAccount *gtsmodel.Account return p.c.GetAPIStatus(ctx, requestingAccount, targetStatus) } +// WebGet gets the given status for web use, taking account of privacy settings. +func (p *Processor) WebGet(ctx context.Context, targetStatusID string) (*apimodel.Status, gtserror.WithCode) { + targetStatus, errWithCode := p.c.GetVisibleTargetStatus(ctx, nil, targetStatusID) + if errWithCode != nil { + return nil, errWithCode + } + + webStatus, err := p.converter.StatusToWebStatus(ctx, targetStatus, nil) + if err != nil { + err = gtserror.Newf("error converting status: %w", err) + return nil, gtserror.NewErrorInternalError(err) + } + return webStatus, nil +} + func (p *Processor) contextGet( ctx context.Context, requestingAccount *gtsmodel.Account, |