|
1 | 1 | defmodule CodeCorps.Emails do
|
2 |
| - alias CodeCorps.Emails.{API, Tasks, Transmissions} |
| 2 | + alias CodeCorps.{ |
| 3 | + Conversation, |
| 4 | + ConversationPart, |
| 5 | + Emails.API, |
| 6 | + Emails.Tasks, |
| 7 | + Emails.Transmissions, |
| 8 | + Message, |
| 9 | + OrganizationInvite, |
| 10 | + Project, |
| 11 | + ProjectUser, |
| 12 | + StripeConnectCharge, |
| 13 | + User |
| 14 | + } |
3 | 15 |
|
4 | 16 | defdelegate create_templates, to: Tasks
|
5 | 17 | defdelegate update_templates, to: Tasks
|
6 | 18 |
|
| 19 | + @spec send_forgot_password_email(User.t, String.t) :: API.transmission_result |
7 | 20 | def send_forgot_password_email(user, token) do
|
8 | 21 | user |> Transmissions.ForgotPassword.build(token) |> API.send_transmission
|
9 | 22 | end
|
10 | 23 |
|
11 |
| - def send_message_initiated_by_project_email(message, conversation) do |
| 24 | + @spec send_message_initiated_by_project_email(Message.t, Conversation.t) :: API.transmission_result |
| 25 | + def send_message_initiated_by_project_email(%Message{} = message, %Conversation{} = conversation) do |
12 | 26 | message
|
13 | 27 | |> Transmissions.MessageInitiatedByProject.build(conversation)
|
14 | 28 | |> API.send_transmission
|
15 | 29 | end
|
16 | 30 |
|
17 |
| - def send_organization_invite_email(invite) do |
| 31 | + @spec send_organization_invite_email(OrganizationInvite.t) :: API.transmission_result |
| 32 | + def send_organization_invite_email(%OrganizationInvite{} = invite) do |
18 | 33 | invite |> Transmissions.OrganizationInvite.build |> API.send_transmission
|
19 | 34 | end
|
20 | 35 |
|
21 |
| - def send_project_approval_request_email(project) do |
| 36 | + @spec send_project_approval_request_email(Project.t) :: API.transmission_result |
| 37 | + def send_project_approval_request_email(%Project{} = project) do |
22 | 38 | project
|
23 | 39 | |> Transmissions.ProjectApprovalRequest.build
|
24 | 40 | |> API.send_transmission
|
25 | 41 | end
|
26 | 42 |
|
27 |
| - def send_project_approved_email(project) do |
| 43 | + @spec send_project_approved_email(Project.t) :: API.transmission_result |
| 44 | + def send_project_approved_email(%Project{} = project) do |
28 | 45 | project |> Transmissions.ProjectApproved.build |> API.send_transmission
|
29 | 46 | end
|
30 | 47 |
|
31 |
| - def send_project_user_acceptance_email(project_user) do |
| 48 | + @spec send_project_user_acceptance_email(ProjectUser.t) :: API.transmission_result |
| 49 | + def send_project_user_acceptance_email(%ProjectUser{} = project_user) do |
32 | 50 | project_user
|
33 | 51 | |> Transmissions.ProjectUserAcceptance.build
|
34 | 52 | |> API.send_transmission
|
35 | 53 | end
|
36 | 54 |
|
37 |
| - def send_project_user_request_email(project_user) do |
| 55 | + @spec send_project_user_request_email(ProjectUser.t) :: API.transmission_result |
| 56 | + def send_project_user_request_email(%ProjectUser{} = project_user) do |
38 | 57 | project_user
|
39 | 58 | |> Transmissions.ProjectUserRequest.build
|
40 | 59 | |> API.send_transmission
|
41 | 60 | end
|
42 | 61 |
|
43 |
| - def send_receipt_email(charge, invoice) do |
| 62 | + @spec send_receipt_email(StripeConnectCharge.t, Stripe.Invoice.t) :: API.transmission_result |
| 63 | + def send_receipt_email(%StripeConnectCharge{} = charge, %Stripe.Invoice{} = invoice) do |
44 | 64 | case charge |> Transmissions.Receipt.build(invoice) do
|
45 | 65 | %SparkPost.Transmission{} = transmission ->
|
46 | 66 | transmission |> API.send_transmission
|
47 | 67 | {:error, reason} -> {:error, reason}
|
48 | 68 | end
|
49 | 69 | end
|
50 | 70 |
|
51 |
| - def send_reply_to_conversation_email(part, user) do |
| 71 | + @spec send_reply_to_conversation_email(ConversationPart.t, User.t) :: API.transmission_result |
| 72 | + def send_reply_to_conversation_email(%ConversationPart{} = part, %User{} = user) do |
52 | 73 | part
|
53 | 74 | |> Transmissions.ReplyToConversation.build(user)
|
54 | 75 | |> API.send_transmission
|
|
0 commit comments