Backfill group file metadata on read
This commit is contained in:
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user