diff --git a/appview/ingester.go b/appview/ingester.go --- a/appview/ingester.go +++ b/appview/ingester.go @@ -211,7 +211,7 @@ l = l.With("nsid", e.Commit.Collection) switch e.Commit.Operation { - case jmodels.CommitOperationCreate, jmodels.CommitOperationUpdate: + case jmodels.CommitOperationCreate: l.Debug("processing add of pubkey") raw := json.RawMessage(e.Commit.Record) record := tangled.PublicKey{} @@ -224,6 +224,19 @@ name := record.Name key := record.Key err = db.AddPublicKey(i.Db, did, name, key, e.Commit.RKey) + case jmodels.CommitOperationUpdate: + l.Debug("processing update of pubkey") + raw := json.RawMessage(e.Commit.Record) + record := tangled.PublicKey{} + err = json.Unmarshal(raw, &record) + if err != nil { + l.Error("invalid record", "err", err) + return err + } + + name := record.Name + key := record.Key + err = db.UpdatePublicKey(i.Db, did, name, key, e.Commit.RKey) case jmodels.CommitOperationDelete: l.Debug("processing delete of pubkey") err = db.DeletePublicKeyByRkey(i.Db, did, e.Commit.RKey) diff --git a/appview/db/pubkeys.go b/appview/db/pubkeys.go --- a/appview/db/pubkeys.go +++ b/appview/db/pubkeys.go @@ -1,8 +1,9 @@ package db import ( - "tangled.org/core/appview/models" "time" + + "tangled.org/core/appview/models" ) func AddPublicKey(e Execer, did, name, key, rkey string) error { @@ -10,6 +11,13 @@ `insert or ignore into public_keys (did, name, key, rkey) values (?, ?, ?, ?)`, did, name, key, rkey) + return err +} + +func UpdatePublicKey(e Execer, did, name, key, rkey string) error { + _, err := e.Exec( + `update public_keys set name = ? where did = ? and key = ? and rkey = ?`, + name, did, key, rkey) return err }