(OraklNode) Refactor object get & set using redis
Closed this issue · 0 comments
nick-bisonai commented
Reduces duplicated codes and improves code readability
Following example codes only includes get and set, but it could be also implemented in mSet and mGet
SET
AS - IS
func insertProofRdb(ctx context.Context, configId int32, round int32, proofs [][]byte) error {
concatProof := bytes.Join(proofs, nil)
key := "proof:" + strconv.Itoa(int(configId)) + "|round:" + strconv.Itoa(int(round))
data, err := json.Marshal(Proof{ConfigID: configId, Round: round, Proof: concatProof})
if err != nil {
log.Error().Str("Player", "Aggregator").Err(err).Msg("failed to marshal proofs")
return err
}
return db.Set(ctx, key, string(data), time.Duration(5*time.Minute))
}
TO - BE
func insertProofRdb(ctx context.Context, configId int32, round int32, proofs [][]byte) error {
concatProof := bytes.Join(proofs, nil)
key := "proof:" + strconv.Itoa(int(configId)) + "|round:" + strconv.Itoa(int(round))
obj := Proof{ConfigID: configId, Round: round, Proof: concatProof}
return db.SetObject(ctx, key, obj, time.Duration(5*time.Minute))
}
GET
AS - IS
func getProofFromRdb(ctx context.Context, configId int32, round int32) (Proof, error) {
key := "proof:" + strconv.Itoa(int(configId)) + "|round:" + strconv.Itoa(int(round))
var proofs Proof
data, err := db.Get(ctx, key)
if err != nil {
return proofs, err
}
err = json.Unmarshal([]byte(data), &proofs)
if err != nil {
return proofs, err
}
return proofs, nil
}
TO - BE
func getProofFromRdb(ctx context.Context, configId int32, round int32) (Proof, error) {
key := "proof:" + strconv.Itoa(int(configId)) + "|round:" + strconv.Itoa(int(round))
return db.getObject[Proof](ctx, key)
}