From 1c1392a0a10a0e50fa3494f8d29243f224196d25 Mon Sep 17 00:00:00 2001 From: Kenneth Date: Sun, 30 Nov 2025 15:02:37 +0000 Subject: [PATCH] refactor: replace KeyMode with ShouldPersistKey --- apps/backend/internal/blob/key.go | 7 ------- apps/backend/internal/virtualfs/flat_key_resolver.go | 4 ++-- .../internal/virtualfs/hierarchical_key_resolver.go | 4 ++-- apps/backend/internal/virtualfs/key_resolver.go | 5 ++++- apps/backend/internal/virtualfs/vfs.go | 6 +++--- 5 files changed, 11 insertions(+), 15 deletions(-) diff --git a/apps/backend/internal/blob/key.go b/apps/backend/internal/blob/key.go index 406e61a..0fdc1c4 100644 --- a/apps/backend/internal/blob/key.go +++ b/apps/backend/internal/blob/key.go @@ -2,13 +2,6 @@ package blob type Key string -type KeyMode int - -const ( - KeyModeStable KeyMode = iota - KeyModeDerived -) - func (k Key) IsNil() bool { return k == "" } diff --git a/apps/backend/internal/virtualfs/flat_key_resolver.go b/apps/backend/internal/virtualfs/flat_key_resolver.go index 609d847..cccea2b 100644 --- a/apps/backend/internal/virtualfs/flat_key_resolver.go +++ b/apps/backend/internal/virtualfs/flat_key_resolver.go @@ -15,8 +15,8 @@ func NewFlatKeyResolver() *FlatKeyResolver { return &FlatKeyResolver{} } -func (r *FlatKeyResolver) KeyMode() blob.KeyMode { - return blob.KeyModeStable +func (r *FlatKeyResolver) ShouldPersistKey() bool { + return true } func (r *FlatKeyResolver) Resolve(ctx context.Context, node *Node) (blob.Key, error) { diff --git a/apps/backend/internal/virtualfs/hierarchical_key_resolver.go b/apps/backend/internal/virtualfs/hierarchical_key_resolver.go index e29986c..c5f3eed 100644 --- a/apps/backend/internal/virtualfs/hierarchical_key_resolver.go +++ b/apps/backend/internal/virtualfs/hierarchical_key_resolver.go @@ -17,8 +17,8 @@ func NewHierarchicalKeyResolver(db *bun.DB) *HierarchicalKeyResolver { return &HierarchicalKeyResolver{db: db} } -func (r *HierarchicalKeyResolver) KeyMode() blob.KeyMode { - return blob.KeyModeDerived +func (r *HierarchicalKeyResolver) ShouldPersistKey() bool { + return false } func (r *HierarchicalKeyResolver) Resolve(ctx context.Context, node *Node) (blob.Key, error) { diff --git a/apps/backend/internal/virtualfs/key_resolver.go b/apps/backend/internal/virtualfs/key_resolver.go index 60b1c60..82bc734 100644 --- a/apps/backend/internal/virtualfs/key_resolver.go +++ b/apps/backend/internal/virtualfs/key_resolver.go @@ -7,7 +7,10 @@ import ( ) type BlobKeyResolver interface { - KeyMode() blob.KeyMode + // ShouldPersistKey returns true if the resolved key should be stored in node.BlobKey. + // Flat keys (e.g. UUIDs) return true - key is generated once and stored. + // Hierarchical keys return false - key is derived from path each time. + ShouldPersistKey() bool Resolve(ctx context.Context, node *Node) (blob.Key, error) ResolveDeletionKeys(ctx context.Context, node *Node, allKeys []blob.Key) (*DeletionPlan, error) } diff --git a/apps/backend/internal/virtualfs/vfs.go b/apps/backend/internal/virtualfs/vfs.go index 921a4ef..44b8857 100644 --- a/apps/backend/internal/virtualfs/vfs.go +++ b/apps/backend/internal/virtualfs/vfs.go @@ -134,7 +134,7 @@ func (vfs *VirtualFS) CreateFile(ctx context.Context, userID uuid.UUID, opts Cre Name: opts.Name, } - if vfs.keyResolver.KeyMode() == blob.KeyModeStable { + if vfs.keyResolver.ShouldPersistKey() { node.BlobKey, err = vfs.keyResolver.Resolve(ctx, &node) if err != nil { return nil, err @@ -184,7 +184,7 @@ func (vfs *VirtualFS) WriteFile(ctx context.Context, node *Node, content FileCon return err } - if vfs.keyResolver.KeyMode() == blob.KeyModeStable { + if vfs.keyResolver.ShouldPersistKey() { node.BlobKey = key setCols = append(setCols, "blob_key") } @@ -360,7 +360,7 @@ func (vfs *VirtualFS) MoveNode(ctx context.Context, node *Node, parentID uuid.UU return err } - if vfs.keyResolver.KeyMode() == blob.KeyModeStable { + if vfs.keyResolver.ShouldPersistKey() { node.BlobKey = newKey _, err = vfs.db.NewUpdate().Model(node). WherePK().