1
0
mirror of https://github.com/jhillyerd/inbucket.git synced 2025-12-20 02:57:05 +00:00

file & mem stores should emit delete events on purge (#338)

Signed-off-by: James Hillyerd <james@hillyerd.com>
This commit is contained in:
James Hillyerd
2023-02-14 19:51:42 -08:00
committed by GitHub
parent 561ed93451
commit a55da8b7d1
3 changed files with 42 additions and 4 deletions

View File

@@ -144,16 +144,25 @@ func (s *Store) MarkSeen(mailbox, id string) error {
// PurgeMessages deletes the contents of a mailbox.
func (s *Store) PurgeMessages(mailbox string) error {
// Grab lock, copy messages, clear, and drop lock.
var messages map[string]*Message
s.withMailbox(mailbox, true, func(mb *mbox) {
messages = mb.messages
mb.messages = make(map[string]*Message)
})
if len(messages) > 0 && s.remove != nil {
// Process size/quota.
if s.remove != nil {
for _, m := range messages {
s.enforcerRemove(m)
}
}
// Emit delete events.
for _, m := range messages {
s.extHost.Events.AfterMessageDeleted.Emit(message.MakeMetadata(m))
}
return nil
}