code-corps / code-corps-api

Elixir/Phoenix API for Code Corps.
https://www.codecorps.org
MIT License
235 stars 86 forks source link

Clean up CodeCorps.Emails.Transmissions.Receipt #1337

Open begedin opened 6 years ago

begedin commented 6 years ago

Problem

In #1332, and even before that, CodeCorps.Emails.Transmissions.Receipt.build is wrapped into a with statement with multiple points of failure.

The event handler code which sends this email also wrapps that call into multiple points of failure.

The border between these seems arbitrary and, more importantly, The behavior of the Receipt itself is inconsistent with all other emails.

We should move these points of failure into the event handler and keep the Receipt itself infallible.

Then, we should decide if the points of failure actually make sense or if it's too defensive. This is old code, so it's quite possible we made some mistakes there.