mirror of
https://github.com/superseriousbusiness/gotosocial
synced 2025-06-05 21:59:39 +02:00
[feature] Implement /api/v1/reports
endpoints on client API (#1330)
* start adding report client api * route + test reports get * start report create endpoint * you can create reports now babyy * stub account report processor * add single reportGet endpoint * fix test * add more filtering params to /api/v1/reports GET * update swagger * use marshalIndent in tests * add + test missing Link info
This commit is contained in:
@ -807,6 +807,44 @@ func (c *converter) DomainBlockToAPIDomainBlock(ctx context.Context, b *gtsmodel
|
||||
return domainBlock, nil
|
||||
}
|
||||
|
||||
func (c *converter) ReportToAPIReport(ctx context.Context, r *gtsmodel.Report) (*apimodel.Report, error) {
|
||||
report := &apimodel.Report{
|
||||
ID: r.ID,
|
||||
CreatedAt: util.FormatISO8601(r.CreatedAt),
|
||||
ActionTaken: !r.ActionTakenAt.IsZero(),
|
||||
Category: "other", // todo: only support default 'other' category right now
|
||||
Comment: r.Comment,
|
||||
Forwarded: *r.Forwarded,
|
||||
StatusIDs: r.StatusIDs,
|
||||
RuleIDs: []int{}, // todo: not supported yet
|
||||
}
|
||||
|
||||
if !r.ActionTakenAt.IsZero() {
|
||||
actionTakenAt := util.FormatISO8601(r.ActionTakenAt)
|
||||
report.ActionTakenAt = &actionTakenAt
|
||||
}
|
||||
|
||||
if actionComment := r.ActionTaken; actionComment != "" {
|
||||
report.ActionComment = &actionComment
|
||||
}
|
||||
|
||||
if r.TargetAccount == nil {
|
||||
tAccount, err := c.db.GetAccountByID(ctx, r.TargetAccountID)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("ReportToAPIReport: error getting target account with id %s from the db: %s", r.TargetAccountID, err)
|
||||
}
|
||||
r.TargetAccount = tAccount
|
||||
}
|
||||
|
||||
apiAccount, err := c.AccountToAPIAccountPublic(ctx, r.TargetAccount)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("ReportToAPIReport: error converting target account to api: %s", err)
|
||||
}
|
||||
report.TargetAccount = apiAccount
|
||||
|
||||
return report, nil
|
||||
}
|
||||
|
||||
// convertAttachmentsToAPIAttachments will convert a slice of GTS model attachments to frontend API model attachments, falling back to IDs if no GTS models supplied.
|
||||
func (c *converter) convertAttachmentsToAPIAttachments(ctx context.Context, attachments []*gtsmodel.MediaAttachment, attachmentIDs []string) ([]apimodel.Attachment, error) {
|
||||
var errs gtserror.MultiError
|
||||
|
Reference in New Issue
Block a user