mirror of
https://github.com/0ceanSlim/grain.git
synced 2024-11-22 08:37:13 +00:00
replace kind 5 with same a tags
This commit is contained in:
parent
7edbee13ac
commit
1cfe7c8e94
@ -29,6 +29,14 @@ func HandleKind5(ctx context.Context, evt relay.Event, dbClient *mongo.Client, w
|
|||||||
kind := parts[0]
|
kind := parts[0]
|
||||||
pubKey := parts[1]
|
pubKey := parts[1]
|
||||||
dID := parts[2]
|
dID := parts[2]
|
||||||
|
|
||||||
|
// Delete previous kind 5 events with the same "a" tag if they exist
|
||||||
|
if err := deletePreviousKind5Events(ctx, kind, pubKey, dID, dbClient); err != nil {
|
||||||
|
response.SendOK(ws, evt.ID, false, fmt.Sprintf("error: %v", err))
|
||||||
|
return fmt.Errorf("error deleting previous kind 5 events: %v", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Delete target events by kind, pubKey, and dID
|
||||||
if err := deleteEventByKindPubKeyDID(ctx, kind, pubKey, dID, evt.CreatedAt, dbClient); err != nil {
|
if err := deleteEventByKindPubKeyDID(ctx, kind, pubKey, dID, evt.CreatedAt, dbClient); err != nil {
|
||||||
response.SendOK(ws, evt.ID, false, fmt.Sprintf("error: %v", err))
|
response.SendOK(ws, evt.ID, false, fmt.Sprintf("error: %v", err))
|
||||||
return fmt.Errorf("error deleting events with kind %s, pubkey %s, and dID %s: %v", kind, pubKey, dID, err)
|
return fmt.Errorf("error deleting events with kind %s, pubkey %s, and dID %s: %v", kind, pubKey, dID, err)
|
||||||
@ -47,6 +55,26 @@ func HandleKind5(ctx context.Context, evt relay.Event, dbClient *mongo.Client, w
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func deletePreviousKind5Events(ctx context.Context, kind string, pubKey string, dID string, dbClient *mongo.Client) error {
|
||||||
|
collection := dbClient.Database("grain").Collection("event-kind5")
|
||||||
|
filter := bson.M{
|
||||||
|
"tags": bson.M{
|
||||||
|
"$elemMatch": bson.M{
|
||||||
|
"0": "a",
|
||||||
|
"1": fmt.Sprintf("%s:%s:%s", kind, pubKey, dID),
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
_, err := collection.DeleteMany(ctx, filter)
|
||||||
|
if err != nil {
|
||||||
|
return fmt.Errorf("error deleting previous kind 5 events from collection event-kind5: %v", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
fmt.Printf("Deleted previous kind 5 events for kind %s, pubkey %s, and dID %s\n", kind, pubKey, dID)
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
func deleteEventByID(ctx context.Context, eventID string, pubKey string, dbClient *mongo.Client) error {
|
func deleteEventByID(ctx context.Context, eventID string, pubKey string, dbClient *mongo.Client) error {
|
||||||
collections, err := dbClient.Database("grain").ListCollectionNames(ctx, bson.M{})
|
collections, err := dbClient.Database("grain").ListCollectionNames(ctx, bson.M{})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
Loading…
Reference in New Issue
Block a user