Skip to content

Commit

Permalink
conditionally update statuf of validator
Browse files Browse the repository at this point in the history
  • Loading branch information
pablomendezroyo committed May 20, 2024
1 parent b1fb97c commit 36f4072
Showing 1 changed file with 11 additions and 1 deletion.
12 changes: 11 additions & 1 deletion listener/internal/api/handlers/postSignatures.go
Original file line number Diff line number Diff line change
Expand Up @@ -110,8 +110,9 @@ func insertSignaturesIntoDB(signatures []types.SignatureRequestDecodedWithStatus
"tag": req.Tag,
"network": network,
}

// Create a base update document with $push operation
update := bson.M{
"$setOnInsert": bson.M{"status": req.Status}, // do not update status if already exists
"$push": bson.M{
"entries": bson.M{
"payload": req.Payload,
Expand All @@ -124,10 +125,19 @@ func insertSignaturesIntoDB(signatures []types.SignatureRequestDecodedWithStatus
},
},
}

// Only update status unknown -> active
if req.Status == "active" {
update["$set"] = bson.M{"status": req.Status}
} else {
update["$setOnInsert"] = bson.M{"status": req.Status}
}

options := options.Update().SetUpsert(true)
if _, err := dbCollection.UpdateOne(context.Background(), filter, update, options); err != nil {
return err
}

logger.Debug("New Signature " + req.Signature + " inserted into MongoDB")
}
return nil
Expand Down

0 comments on commit 36f4072

Please sign in to comment.