Skip to content

Commit 997479b

Browse files
committed
Add specs to emails context, clean up another dialyzer error
1 parent bfa983e commit 997479b

File tree

2 files changed

+32
-11
lines changed

2 files changed

+32
-11
lines changed

lib/code_corps/emails/emails.ex

Lines changed: 30 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,54 +1,75 @@
11
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+
}
315

416
defdelegate create_templates, to: Tasks
517
defdelegate update_templates, to: Tasks
618

19+
@spec send_forgot_password_email(User.t, String.t) :: API.transmission_result
720
def send_forgot_password_email(user, token) do
821
user |> Transmissions.ForgotPassword.build(token) |> API.send_transmission
922
end
1023

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
1226
message
1327
|> Transmissions.MessageInitiatedByProject.build(conversation)
1428
|> API.send_transmission
1529
end
1630

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
1833
invite |> Transmissions.OrganizationInvite.build |> API.send_transmission
1934
end
2035

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
2238
project
2339
|> Transmissions.ProjectApprovalRequest.build
2440
|> API.send_transmission
2541
end
2642

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
2845
project |> Transmissions.ProjectApproved.build |> API.send_transmission
2946
end
3047

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
3250
project_user
3351
|> Transmissions.ProjectUserAcceptance.build
3452
|> API.send_transmission
3553
end
3654

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
3857
project_user
3958
|> Transmissions.ProjectUserRequest.build
4059
|> API.send_transmission
4160
end
4261

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
4464
case charge |> Transmissions.Receipt.build(invoice) do
4565
%SparkPost.Transmission{} = transmission ->
4666
transmission |> API.send_transmission
4767
{:error, reason} -> {:error, reason}
4868
end
4969
end
5070

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
5273
part
5374
|> Transmissions.ReplyToConversation.build(user)
5475
|> API.send_transmission

lib/code_corps/messages/messages.ex

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ defmodule CodeCorps.Messages do
4747
@doc ~S"""
4848
Gets a `CodeCorps.Conversation` record
4949
"""
50-
@spec get_conversation(integer) :: Conversation.t
50+
@spec get_conversation(integer) :: Conversation.t | nil
5151
def get_conversation(id) do
5252
Conversation |> Repo.get(id)
5353
end
@@ -59,7 +59,7 @@ defmodule CodeCorps.Messages do
5959
@doc ~S"""
6060
Gets a `CodeCorps.ConversationPart` record
6161
"""
62-
@spec get_part(integer) :: Conversation.t
62+
@spec get_part(integer) :: ConversationPart.t | nil
6363
def get_part(id) do
6464
ConversationPart |> Repo.get(id)
6565
end

0 commit comments

Comments
 (0)