Skip to content

Commit 92eb5d4

Browse files
authored
fix: improve KVS update method error handling (#37)
- Check if key exists before attempting update - Return ErrNotFound when key doesn't exist - Improve error message for JSON marshalling failures
1 parent 126ff82 commit 92eb5d4

1 file changed

Lines changed: 4 additions & 1 deletion

File tree

pkg/repository/kvs.go

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,9 +68,12 @@ func (r *kvsRepository) delete(ctx context.Context, key string) error {
6868
func (r *kvsRepository) update(ctx context.Context, key string, value any) error {
6969
return r.db.Update(func(tx *bbolt.Tx) error {
7070
bucket := tx.Bucket([]byte(r.bucketName))
71+
if bucket.Get([]byte(key)) == nil {
72+
return fosite.ErrNotFound
73+
}
7174
data, err := json.Marshal(value)
7275
if err != nil {
73-
return fosite.ErrNotFound
76+
return fmt.Errorf("failed to marshal value: %w", err)
7477
}
7578
return bucket.Put([]byte(key), data)
7679
})

0 commit comments

Comments
 (0)