|
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