Delete attachments

This commit is contained in:
binwiederhier
2026-01-18 16:04:42 -05:00
parent c23d201186
commit ac9cfbfaf4
4 changed files with 123 additions and 16 deletions

View File

@@ -864,9 +864,16 @@ func (s *Server) handlePublishInternal(r *http.Request, v *visitor) (*message, e
}
if cache {
// Delete any existing scheduled message with the same sequence ID
if err := s.messageCache.DeleteScheduledBySequenceID(t.ID, m.SequenceID); err != nil {
deletedIDs, err := s.messageCache.DeleteScheduledBySequenceID(t.ID, m.SequenceID)
if err != nil {
return nil, err
}
// Delete attachment files for deleted scheduled messages
if s.fileCache != nil && len(deletedIDs) > 0 {
if err := s.fileCache.Remove(deletedIDs...); err != nil {
logvrm(v, r, m).Tag(tagPublish).Err(err).Warn("Error removing attachments for deleted scheduled messages")
}
}
logvrm(v, r, m).Tag(tagPublish).Debug("Adding message to cache")
if err := s.messageCache.AddMessage(m); err != nil {
return nil, err
@@ -963,9 +970,16 @@ func (s *Server) handleActionMessage(w http.ResponseWriter, r *http.Request, v *
go s.publishToWebPushEndpoints(v, m)
}
// Delete any existing scheduled message with the same sequence ID
if err := s.messageCache.DeleteScheduledBySequenceID(t.ID, sequenceID); err != nil {
deletedIDs, err := s.messageCache.DeleteScheduledBySequenceID(t.ID, sequenceID)
if err != nil {
return err
}
// Delete attachment files for deleted scheduled messages
if s.fileCache != nil && len(deletedIDs) > 0 {
if err := s.fileCache.Remove(deletedIDs...); err != nil {
logvrm(v, r, m).Tag(tagPublish).Err(err).Warn("Error removing attachments for deleted scheduled messages")
}
}
// Add to message cache
if err := s.messageCache.AddMessage(m); err != nil {
return err