## Summary - Notify the direct parent post author for replies throughout nested conversations - Skip root creation, self-replies, edits, disabled mail, and recipients without email - Link directly to each reply and use per-reply Resend idempotency Co-authored-by: codegirl-007 <s.raide@gmail.com>
35 lines
605 B
Go
35 lines
605 B
Go
package mail
|
|
|
|
import (
|
|
"context"
|
|
"sync"
|
|
)
|
|
|
|
// Recording is a test Notifier that records calls.
|
|
type Recording struct {
|
|
mu sync.Mutex
|
|
Msgs []PostReply
|
|
}
|
|
|
|
func (r *Recording) NotifyPostReply(_ context.Context, msg PostReply) error {
|
|
r.mu.Lock()
|
|
defer r.mu.Unlock()
|
|
r.Msgs = append(r.Msgs, msg)
|
|
return nil
|
|
}
|
|
|
|
func (r *Recording) Len() int {
|
|
r.mu.Lock()
|
|
defer r.mu.Unlock()
|
|
return len(r.Msgs)
|
|
}
|
|
|
|
// Snapshot returns a copy of recorded messages.
|
|
func (r *Recording) Snapshot() []PostReply {
|
|
r.mu.Lock()
|
|
defer r.mu.Unlock()
|
|
out := make([]PostReply, len(r.Msgs))
|
|
copy(out, r.Msgs)
|
|
return out
|
|
}
|