From f9e6f98733979ed04eada44e4d07c0d5ef7ffb4c Mon Sep 17 00:00:00 2001 From: Abhishek Shroff Date: Thu, 2 Jan 2025 22:14:01 +0530 Subject: [PATCH] [server] Send updated resource modified time --- server/internal/core/db/fs.sql.go | 10 ++++++---- server/internal/core/fs/copy_move.go | 7 ++++--- server/sql/queries/fs.sql | 2 +- 3 files changed, 11 insertions(+), 8 deletions(-) diff --git a/server/internal/core/db/fs.sql.go b/server/internal/core/db/fs.sql.go index dc3cae6d..d5ba9c6b 100644 --- a/server/internal/core/db/fs.sql.go +++ b/server/internal/core/db/fs.sql.go @@ -9,6 +9,7 @@ import ( "context" "github.com/google/uuid" + "github.com/jackc/pgx/v5/pgtype" ) const childResourceByName = `-- name: ChildResourceByName :one @@ -378,7 +379,7 @@ SET parent = $2::uuid, modified = NOW() WHERE id = $3::uuid -RETURNING name, parent +RETURNING name, parent, modified ` type UpdateResourceNameParentParams struct { @@ -388,14 +389,15 @@ type UpdateResourceNameParentParams struct { } type UpdateResourceNameParentRow struct { - Name string - Parent *uuid.UUID + Name string + Parent *uuid.UUID + Modified pgtype.Timestamp } func (q *Queries) UpdateResourceNameParent(ctx context.Context, arg UpdateResourceNameParentParams) (UpdateResourceNameParentRow, error) { row := q.db.QueryRow(ctx, updateResourceNameParent, arg.Name, arg.Parent, arg.ID) var i UpdateResourceNameParentRow - err := row.Scan(&i.Name, &i.Parent) + err := row.Scan(&i.Name, &i.Parent, &i.Modified) return i, err } diff --git a/server/internal/core/fs/copy_move.go b/server/internal/core/fs/copy_move.go index 7b06fbd1..e5759511 100644 --- a/server/internal/core/fs/copy_move.go +++ b/server/internal/core/fs/copy_move.go @@ -62,14 +62,15 @@ func (r Resource) Move(target string, conflictResolution ResourceBindConflictRes return err } } - if nameParent, err := f.db.UpdateResourceNameParent(f.ctx, db.UpdateResourceNameParentParams{ID: r.ID(), Name: destName, Parent: destParent.ID()}); err != nil { + if result, err := f.db.UpdateResourceNameParent(f.ctx, db.UpdateResourceNameParentParams{ID: r.ID(), Name: destName, Parent: destParent.ID()}); err != nil { if strings.Contains(err.Error(), "unique_member_resource_name") { return ErrResourceNameConflict } return err } else { - r.Info.name = nameParent.Name - r.Info.parentID = nameParent.Parent + r.Info.name = result.Name + r.Info.parentID = result.Parent + r.Info.modified = result.Modified.Time return nil } }) diff --git a/server/sql/queries/fs.sql b/server/sql/queries/fs.sql index 72b7cf8a..720ec228 100644 --- a/server/sql/queries/fs.sql +++ b/server/sql/queries/fs.sql @@ -56,7 +56,7 @@ SET parent = @parent::uuid, modified = NOW() WHERE id = @id::uuid -RETURNING name, parent; +RETURNING name, parent, modified; -- name: UpdateUserPermissionsForResource :exec INSERT INTO permissions(