Skip to content

Commit e9f1961

Browse files
committed
Restructure Emails context
1 parent 3919903 commit e9f1961

40 files changed

+138
-143
lines changed

lib/code_corps/sparkpost/api.ex renamed to lib/code_corps/emails/api.ex

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
defmodule CodeCorps.SparkPost.API do
1+
defmodule CodeCorps.Emails.API do
22
@moduledoc ~S"""
33
A wrapper for the SparkPost API.
44

lib/code_corps/emails/emails.ex

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
defmodule CodeCorps.Emails do
2+
alias CodeCorps.Emails.{API, Tasks, Transmissions}
3+
4+
defdelegate create_templates, to: Tasks
5+
defdelegate update_templates, to: Tasks
6+
7+
def send_forgot_password_email(user, token) do
8+
user |> Transmissions.ForgotPassword.build(token) |> API.send_transmission
9+
end
10+
11+
def send_message_initiated_by_project_email(message, conversation) do
12+
message
13+
|> Transmissions.MessageInitiatedByProject.build(conversation)
14+
|> API.send_transmission
15+
end
16+
17+
def send_organization_invite_email(invite) do
18+
invite |> Transmissions.OrganizationInvite.build |> API.send_transmission
19+
end
20+
21+
def send_project_approval_request_email(project) do
22+
project
23+
|> Transmissions.ProjectApprovalRequest.build
24+
|> API.send_transmission
25+
end
26+
27+
def send_project_approved_email(project) do
28+
project |> Transmissions.ProjectApproved.build |> API.send_transmission
29+
end
30+
31+
def send_project_user_acceptance_email(project_user) do
32+
project_user
33+
|> Transmissions.ProjectUserAcceptance.build
34+
|> API.send_transmission
35+
end
36+
37+
def send_project_user_request_email(project_user) do
38+
project_user
39+
|> Transmissions.ProjectUserRequest.build
40+
|> API.send_transmission
41+
end
42+
43+
def send_receipt_email(charge, invoice) do
44+
case charge |> Transmissions.Receipt.build(invoice) do
45+
%SparkPost.Transmission{} = transmission ->
46+
transmission |> API.send_transmission
47+
build_failure -> build_failure
48+
end
49+
end
50+
51+
def send_reply_to_conversation_email(part, user) do
52+
part
53+
|> Transmissions.ReplyToConversation.build(user)
54+
|> API.send_transmission
55+
end
56+
end

lib/code_corps/sparkpost/extended_api.ex renamed to lib/code_corps/emails/extended_api.ex

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
defmodule CodeCorps.SparkPost.ExtendedAPI do
1+
defmodule CodeCorps.Emails.ExtendedAPI do
22
@moduledoc """
33
Serves as an extension of the SparkPost API provided by the elixir-sparkpost
44
library, for features the external package does not support yet

lib/code_corps/sparkpost/emails/recipient.ex renamed to lib/code_corps/emails/recipient.ex

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
defmodule CodeCorps.SparkPost.Emails.Recipient do
1+
defmodule CodeCorps.Emails.Recipient do
22
@moduledoc ~S"""
33
In charge of adapting `CodeCorps.User` data into SparkPost recipient data.
44
"""

lib/code_corps/sparkpost/tasks.ex renamed to lib/code_corps/emails/tasks.ex

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
defmodule CodeCorps.SparkPost.Tasks do
1+
defmodule CodeCorps.Emails.Tasks do
22
@moduledoc ~S"""
33
Subcontext holding all commonly performed Tasks related to SparkPost
44
"""
@@ -15,7 +15,7 @@ defmodule CodeCorps.SparkPost.Tasks do
1515
"reply-to-conversation"
1616
]
1717

18-
alias CodeCorps.SparkPost.API
18+
alias CodeCorps.Emails.API
1919

2020
@doc ~S"""
2121
Builds a stream, which, when evaluated, makes API requests to create all

lib/code_corps/sparkpost/emails/forgot_password.ex renamed to lib/code_corps/emails/transmissions/forgot_password.ex

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
defmodule CodeCorps.SparkPost.Emails.ForgotPassword do
1+
defmodule CodeCorps.Emails.Transmissions.ForgotPassword do
22

33
alias SparkPost.{Content, Transmission}
4-
alias CodeCorps.{SparkPost.Emails.Recipient, User, WebClient}
4+
alias CodeCorps.{Emails.Recipient, User, WebClient}
55

66
@spec build(User.t, String.t) :: %Transmission{}
77
def build(%User{} = user, token) do

lib/code_corps/sparkpost/emails/message_initiated_by_project.ex renamed to lib/code_corps/emails/transmissions/message_initiated_by_project.ex

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1-
defmodule CodeCorps.SparkPost.Emails.MessageInitiatedByProject do
1+
defmodule CodeCorps.Emails.Transmissions.MessageInitiatedByProject do
22
alias SparkPost.{Content, Transmission}
33
alias CodeCorps.{
44
Conversation,
55
Message,
66
Project,
7-
SparkPost.Emails.Recipient,
7+
Emails.Recipient,
88
User,
99
WebClient
1010
}

lib/code_corps/sparkpost/emails/organization_invite.ex renamed to lib/code_corps/emails/transmissions/organization_invite.ex

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
defmodule CodeCorps.SparkPost.Emails.OrganizationInvite do
1+
defmodule CodeCorps.Emails.Transmissions.OrganizationInvite do
22
alias SparkPost.{Content, Transmission}
3-
alias CodeCorps.{OrganizationInvite, SparkPost.Emails.Recipient, WebClient}
3+
alias CodeCorps.{OrganizationInvite, Emails.Recipient, WebClient}
44

55
@spec build(OrganizationInvite.t) :: %Transmission{}
66
def build(%OrganizationInvite{} = invite) do

lib/code_corps/sparkpost/emails/project_approval_request.ex renamed to lib/code_corps/emails/transmissions/project_approval_request.ex

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
1-
defmodule CodeCorps.SparkPost.Emails.ProjectApprovalRequest do
1+
defmodule CodeCorps.Emails.Transmissions.ProjectApprovalRequest do
22
import Ecto.Query, only: [where: 3]
33

44
alias SparkPost.{Content, Transmission}
55
alias CodeCorps.{
66
Presenters.ImagePresenter,
77
Project,
88
Repo,
9-
SparkPost.Emails.Recipient,
9+
Emails.Recipient,
1010
User,
1111
WebClient
1212
}

lib/code_corps/sparkpost/emails/project_approved.ex renamed to lib/code_corps/emails/transmissions/project_approved.ex

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
1-
defmodule CodeCorps.SparkPost.Emails.ProjectApproved do
1+
defmodule CodeCorps.Emails.Transmissions.ProjectApproved do
22
import Ecto.Query
33

44
alias SparkPost.{Content, Transmission}
55
alias CodeCorps.{
6-
Project, ProjectUser, Repo, SparkPost.Emails.Recipient, User, WebClient
6+
Project, ProjectUser, Repo, Emails.Recipient, User, WebClient
77
}
88

99
@spec build(Project.t) :: %Transmission{}

0 commit comments

Comments
 (0)