mirror of
https://github.com/superseriousbusiness/gotosocial
synced 2025-06-05 21:59:39 +02:00
[bugfix] Add proper constraints on status faves, dedupe (#1674)
* [bugfix] Start working on multiple like issue * finish up
This commit is contained in:
@@ -288,13 +288,19 @@ func (f *federatingDB) activityLike(ctx context.Context, asType vocab.Type, rece
|
||||
|
||||
fave, err := f.typeConverter.ASLikeToFave(ctx, like)
|
||||
if err != nil {
|
||||
return fmt.Errorf("activityLike: could not convert Like to fave: %s", err)
|
||||
return fmt.Errorf("activityLike: could not convert Like to fave: %w", err)
|
||||
}
|
||||
|
||||
fave.ID = id.NewULID()
|
||||
|
||||
if err := f.state.DB.Put(ctx, fave); err != nil {
|
||||
return fmt.Errorf("activityLike: database error inserting fave: %s", err)
|
||||
if err := f.state.DB.PutStatusFave(ctx, fave); err != nil {
|
||||
if errors.Is(err, db.ErrAlreadyExists) {
|
||||
// The Like already exists in the database, which
|
||||
// means we've already handled side effects. We can
|
||||
// just return nil here and be done with it.
|
||||
return nil
|
||||
}
|
||||
return fmt.Errorf("activityLike: database error inserting fave: %w", err)
|
||||
}
|
||||
|
||||
f.state.Workers.EnqueueFederator(ctx, messages.FromFederator{
|
||||
|
Reference in New Issue
Block a user