Backfill group file metadata on read

This commit is contained in:
richjohnrambo
2026-09-08 14:17:10 +08:00
parent 20c0b92d77
commit 62e989487b
+16 -3
View File
@@ -907,6 +907,7 @@ func (a *adapter) TenantGroupFileList(id t.TenantID, topic, fileType, query, cur
next = strconv.FormatInt(file.ID, 10) next = strconv.FormatInt(file.ID, 10)
continue continue
} }
a.enrichGroupFileFromUpload(id, file)
items = append(items, *file) items = append(items, *file)
} }
return items, next, rows.Err() return items, next, rows.Err()
@@ -953,14 +954,26 @@ func (a *adapter) TenantGroupFileCreate(id t.TenantID, file *t.GroupFile) (*t.Gr
if err != nil && !isDupe(err) { if err != nil && !isDupe(err) {
return nil, err return nil, err
} }
return a.groupFileByQuery(ctx, "SELECT * FROM im_group_files WHERE topic=? AND file_id=?", file.Topic, file.FileID) created, err := a.groupFileByQuery(ctx, "SELECT * FROM im_group_files WHERE topic=? AND file_id=?", file.Topic, file.FileID)
if err != nil {
return nil, err
}
a.enrichGroupFileFromUpload(id, created)
return created, nil
} }
func (a *adapter) enrichGroupFileFromUpload(id t.TenantID, file *t.GroupFile) { func (a *adapter) enrichGroupFileFromUpload(id t.TenantID, file *t.GroupFile) {
if file == nil || t.ParseUid(file.FileID).IsZero() { if file == nil {
return return
} }
fd, err := a.TenantFileGet(id, file.FileID) fileID := strings.TrimSpace(file.FileID)
if dot := strings.IndexByte(fileID, '.'); dot > 0 {
fileID = fileID[:dot]
}
if t.ParseUid(fileID).IsZero() {
return
}
fd, err := a.TenantFileGet(id, fileID)
if err != nil || fd == nil { if err != nil || fd == nil {
if file.FileName == "" { if file.FileName == "" {
file.FileName = file.FileID file.FileName = file.FileID