fix: preserve meeting note file metadata

This commit is contained in:
richjohnrambo
2026-09-17 20:40:48 +08:00
parent 9cfeb5f2c7
commit fe7d4ccb3e
6 changed files with 138 additions and 11 deletions
+18
View File
@@ -2,6 +2,8 @@ package httpapi
import (
"encoding/json"
"mime"
"path/filepath"
"strings"
"time"
@@ -315,13 +317,18 @@ func meetingNotesDetailPayload(meeting store.Meeting, files []store.MeetingNoteF
}
func meetingNoteFilePayload(file store.MeetingNoteFile, viewer int64) map[string]any {
extension := meetingNoteFileExtension(file.FileName, file.MIMEType)
return map[string]any{
"note_file_id": file.NoteFileID,
"meeting_id": file.MeetingID,
"file_id": file.FileID,
"name": file.FileName,
"file_name": file.FileName,
"mime": file.MIMEType,
"mime_type": file.MIMEType,
"size": file.FileSize,
"file_size": file.FileSize,
"file_extension": extension,
"file_etag": file.FileETag,
"status": file.Status,
"preview_status": file.PreviewStatus,
@@ -341,6 +348,17 @@ func meetingNoteFilePayload(file store.MeetingNoteFile, viewer int64) map[string
}
}
func meetingNoteFileExtension(fileName, mimeType string) string {
if ext := strings.ToLower(strings.TrimPrefix(filepath.Ext(strings.TrimSpace(fileName)), ".")); ext != "" {
return ext
}
exts, _ := mime.ExtensionsByType(strings.TrimSpace(mimeType))
if len(exts) == 0 {
return ""
}
return strings.ToLower(strings.TrimPrefix(exts[0], "."))
}
func dailyReportPayloads(reports []store.DailyReport) []map[string]any {
items := make([]map[string]any, 0, len(reports))
for _, report := range reports {