fix: hydrate meeting note file uploader
This commit is contained in:
@@ -622,6 +622,9 @@ func (s *Store) MeetingNoteFiles(ctx context.Context, userID int64, meetingID st
|
||||
FROM im_meeting_note_files WHERE meeting_id=? AND status='active' ORDER BY id DESC`, meetingID); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if err := s.hydrateMeetingNoteFilesUploaders(ctx, files); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return files, nil
|
||||
}
|
||||
|
||||
@@ -1327,9 +1330,42 @@ func (s *Store) meetingNoteFile(ctx context.Context, meetingID, noteFileID strin
|
||||
}
|
||||
return nil, err
|
||||
}
|
||||
if err := s.hydrateMeetingNoteFileUploader(ctx, &file); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return &file, nil
|
||||
}
|
||||
|
||||
func (s *Store) hydrateMeetingNoteFileUploader(ctx context.Context, file *MeetingNoteFile) error {
|
||||
if file == nil {
|
||||
return nil
|
||||
}
|
||||
summaries, err := s.UserSummaries(ctx, []int64{file.UploaderID})
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
file.Uploader = summaryOrDefault(file.UploaderID, summaries)
|
||||
return nil
|
||||
}
|
||||
|
||||
func (s *Store) hydrateMeetingNoteFilesUploaders(ctx context.Context, files []MeetingNoteFile) error {
|
||||
if len(files) == 0 {
|
||||
return nil
|
||||
}
|
||||
userIDs := make([]int64, 0, len(files))
|
||||
for _, file := range files {
|
||||
userIDs = append(userIDs, file.UploaderID)
|
||||
}
|
||||
summaries, err := s.UserSummaries(ctx, userIDs)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
for i := range files {
|
||||
files[i].Uploader = summaryOrDefault(files[i].UploaderID, summaries)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func meetingVisible(meeting Meeting, userID int64) bool {
|
||||
if meeting.OrganizerID == userID || meeting.RecorderID == userID {
|
||||
return true
|
||||
|
||||
@@ -148,10 +148,11 @@ type MeetingParticipant struct {
|
||||
}
|
||||
|
||||
type MeetingNoteFile struct {
|
||||
NoteFileID string `db:"note_file_id"`
|
||||
MeetingID string `db:"meeting_id"`
|
||||
FileID string `db:"file_id"`
|
||||
UploaderID int64 `db:"uploader_id"`
|
||||
NoteFileID string `db:"note_file_id"`
|
||||
MeetingID string `db:"meeting_id"`
|
||||
FileID string `db:"file_id"`
|
||||
UploaderID int64 `db:"uploader_id"`
|
||||
Uploader UserSummary
|
||||
FileName string `db:"file_name"`
|
||||
MIMEType string `db:"mime_type"`
|
||||
FileSize int64 `db:"file_size"`
|
||||
|
||||
Reference in New Issue
Block a user