MCPcopy
hub / github.com/kopia/kopia / SendTo

Function SendTo

notification/notification_send.go:179–212  ·  view source on GitHub ↗

SendTo sends a notification to the given sender.

(ctx context.Context, rep repo.Repository, s sender.Sender, templateName string, eventArgs notifydata.TypedEventArgs, sev Severity, opt notifytemplate.Options)

Source from the content-addressed store, hash-verified

177
178// SendTo sends a notification to the given sender.
179func SendTo(ctx context.Context, rep repo.Repository, s sender.Sender, templateName string, eventArgs notifydata.TypedEventArgs, sev Severity, opt notifytemplate.Options) error {
180 // execute template
181 var bodyBuf bytes.Buffer
182
183 tmpl, err := notifytemplate.ResolveTemplate(ctx, rep, s.ProfileName(), templateName, s.Format())
184 if err != nil {
185 return errors.Wrap(err, "unable to resolve notification template")
186 }
187
188 t, err := notifytemplate.ParseTemplate(tmpl, opt)
189 if err != nil {
190 return errors.Wrap(err, "unable to parse notification template")
191 }
192
193 if err := t.Execute(&bodyBuf, MakeTemplateArgs(eventArgs)); err != nil {
194 return errors.Wrap(err, "unable to execute notification template")
195 }
196
197 // extract headers from the template
198 msg, err := sender.ParseMessage(ctx, &bodyBuf)
199 if err != nil {
200 return errors.Wrap(err, "unable to parse message from notification template")
201 }
202
203 msg.Severity = sev
204
205 var resultErr error
206
207 if err := s.Send(ctx, msg); err != nil {
208 resultErr = stderrors.Join(resultErr, errors.Wrap(err, "unable to send notification message"))
209 }
210
211 return resultErr
212}
213
214// SendTestNotification sends a test notification to the given sender.
215func SendTestNotification(ctx context.Context, rep repo.Repository, s sender.Sender) error {

Callers 2

SendInternalFunction · 0.85
SendTestNotificationFunction · 0.85

Calls 7

ResolveTemplateFunction · 0.92
ParseTemplateFunction · 0.92
ParseMessageFunction · 0.92
MakeTemplateArgsFunction · 0.85
ProfileNameMethod · 0.65
FormatMethod · 0.65
SendMethod · 0.65

Tested by

no test coverage detected