From 5f7be4651e697408baa409bd1328c06d230eb84c Mon Sep 17 00:00:00 2001 From: Zacck Osiemo Date: Tue, 19 Dec 2017 07:47:20 +0200 Subject: [PATCH] Add get_name function to the BaseEmail --- emails/receipt.html | 2 +- lib/code_corps/emails/base_email.ex | 5 +++++ lib/code_corps/emails/receipt_email.ex | 4 ++-- priv/repo/structure.sql | 9 +++++---- test/lib/code_corps/emails/base_email_test.exs | 17 +++++++++++++++++ .../code_corps/emails/receipt_email_test.exs | 4 ++-- 6 files changed, 32 insertions(+), 9 deletions(-) create mode 100644 test/lib/code_corps/emails/base_email_test.exs diff --git a/emails/receipt.html b/emails/receipt.html index a5a65a92c..95a1169ef 100644 --- a/emails/receipt.html +++ b/emails/receipt.html @@ -45,7 +45,7 @@

- {{user_first_name}}, thanks for your monthly donation to {{project_title}}. + Hey {{name}}, thanks for your monthly donation to {{project_title}}.

diff --git a/lib/code_corps/emails/base_email.ex b/lib/code_corps/emails/base_email.ex index 3344271a9..d170b6535 100644 --- a/lib/code_corps/emails/base_email.ex +++ b/lib/code_corps/emails/base_email.ex @@ -1,9 +1,14 @@ defmodule CodeCorps.Emails.BaseEmail do import Bamboo.Email, only: [from: 2, new_email: 0] + alias CodeCorps.User @spec create :: Bamboo.Email.t def create do new_email() |> from("Code Corps") end + + @spec get_name(User.t) :: String.t + def get_name(%User{first_name: nil}), do: "there" + def get_name(%User{first_name: name}), do: name end diff --git a/lib/code_corps/emails/receipt_email.ex b/lib/code_corps/emails/receipt_email.ex index 3966190c0..cc49cc6fb 100644 --- a/lib/code_corps/emails/receipt_email.ex +++ b/lib/code_corps/emails/receipt_email.ex @@ -51,11 +51,11 @@ defmodule CodeCorps.Emails.ReceiptEmail do charge_amount: charge.amount |> format_amount(), charge_statement_descriptor: charge.statement_descriptor, high_five_image_url: high_five_image_url(), + name: BaseEmail.get_name(charge.user), project_current_donation_goal_description: current_donation_goal.description, project_title: project.title, project_url: project |> url(), - subject: project |> build_subject_line(), - user_first_name: charge.user.first_name + subject: project |> build_subject_line() } end diff --git a/priv/repo/structure.sql b/priv/repo/structure.sql index d50ccec7a..cfe9bc6e9 100644 --- a/priv/repo/structure.sql +++ b/priv/repo/structure.sql @@ -2,8 +2,8 @@ -- PostgreSQL database dump -- --- Dumped from database version 10.0 --- Dumped by pg_dump version 10.0 +-- Dumped from database version 10.1 +-- Dumped by pg_dump version 10.1 SET statement_timeout = 0; SET lock_timeout = 0; @@ -166,7 +166,8 @@ CREATE TABLE conversation_parts ( author_id bigint, conversation_id bigint, inserted_at timestamp without time zone NOT NULL, - updated_at timestamp without time zone NOT NULL + updated_at timestamp without time zone NOT NULL, + part_type character varying(255) DEFAULT 'comment'::character varying ); @@ -4158,5 +4159,5 @@ ALTER TABLE ONLY users -- PostgreSQL database dump complete -- -INSERT INTO "schema_migrations" (version) VALUES (20160723215749), (20160804000000), (20160804001111), (20160805132301), (20160805203929), (20160808143454), (20160809214736), (20160810124357), (20160815125009), (20160815143002), (20160816020347), (20160816034021), (20160817220118), (20160818000944), (20160818132546), (20160820113856), (20160820164905), (20160822002438), (20160822004056), (20160822011624), (20160822020401), (20160822044612), (20160830081224), (20160830224802), (20160911233738), (20160912002705), (20160912145957), (20160918003206), (20160928232404), (20161003185918), (20161019090945), (20161019110737), (20161020144622), (20161021131026), (20161031001615), (20161121005339), (20161121014050), (20161121043941), (20161121045709), (20161122015942), (20161123081114), (20161123150943), (20161124085742), (20161125200620), (20161126045705), (20161127054559), (20161205024856), (20161207112519), (20161209192504), (20161212005641), (20161214005935), (20161215052051), (20161216051447), (20161218005913), (20161219160401), (20161219163909), (20161220141753), (20161221085759), (20161226213600), (20161231063614), (20170102130055), (20170102181053), (20170104113708), (20170104212623), (20170104235423), (20170106013143), (20170115035159), (20170115230549), (20170121014100), (20170131234029), (20170201014901), (20170201025454), (20170201035458), (20170201183258), (20170220032224), (20170224233516), (20170226050552), (20170228085250), (20170308214128), (20170308220713), (20170308222552), (20170313130611), (20170318032449), (20170318082740), (20170324194827), (20170424215355), (20170501225441), (20170505224222), (20170526095401), (20170602000208), (20170622205732), (20170626231059), (20170628092119), (20170628213609), (20170629183404), (20170630140136), (20170706132431), (20170707213648), (20170711122252), (20170717092127), (20170725060612), (20170727052644), (20170731130121), (20170814131722), (20170913114958), (20170921014405), (20170925214512), (20170925230419), (20170926134646), (20170927100300), (20170928234412), (20171003134956), (20171003225853), (20171006063358), (20171006161407), (20171012215106), (20171012221231), (20171016125229), (20171016125516), (20171016223356), (20171016235656), (20171017235433), (20171019191035), (20171025184225), (20171026010933), (20171027061833), (20171028011642), (20171028173508), (20171030182857), (20171031232023), (20171031234356), (20171101023309), (20171104013543), (20171106045740), (20171106050209), (20171106103153), (20171106200036), (20171109231538), (20171110001134), (20171114010851), (20171114033357), (20171114225214), (20171114225713), (20171114232534), (20171115201624), (20171115225358), (20171119004204), (20171121075226), (20171121144138), (20171123065902), (20171127215847), (20171201073818), (20171205161052), (20171213062707); +INSERT INTO "schema_migrations" (version) VALUES (20160723215749), (20160804000000), (20160804001111), (20160805132301), (20160805203929), (20160808143454), (20160809214736), (20160810124357), (20160815125009), (20160815143002), (20160816020347), (20160816034021), (20160817220118), (20160818000944), (20160818132546), (20160820113856), (20160820164905), (20160822002438), (20160822004056), (20160822011624), (20160822020401), (20160822044612), (20160830081224), (20160830224802), (20160911233738), (20160912002705), (20160912145957), (20160918003206), (20160928232404), (20161003185918), (20161019090945), (20161019110737), (20161020144622), (20161021131026), (20161031001615), (20161121005339), (20161121014050), (20161121043941), (20161121045709), (20161122015942), (20161123081114), (20161123150943), (20161124085742), (20161125200620), (20161126045705), (20161127054559), (20161205024856), (20161207112519), (20161209192504), (20161212005641), (20161214005935), (20161215052051), (20161216051447), (20161218005913), (20161219160401), (20161219163909), (20161220141753), (20161221085759), (20161226213600), (20161231063614), (20170102130055), (20170102181053), (20170104113708), (20170104212623), (20170104235423), (20170106013143), (20170115035159), (20170115230549), (20170121014100), (20170131234029), (20170201014901), (20170201025454), (20170201035458), (20170201183258), (20170220032224), (20170224233516), (20170226050552), (20170228085250), (20170308214128), (20170308220713), (20170308222552), (20170313130611), (20170318032449), (20170318082740), (20170324194827), (20170424215355), (20170501225441), (20170505224222), (20170526095401), (20170602000208), (20170622205732), (20170626231059), (20170628092119), (20170628213609), (20170629183404), (20170630140136), (20170706132431), (20170707213648), (20170711122252), (20170717092127), (20170725060612), (20170727052644), (20170731130121), (20170814131722), (20170913114958), (20170921014405), (20170925214512), (20170925230419), (20170926134646), (20170927100300), (20170928234412), (20171003134956), (20171003225853), (20171006063358), (20171006161407), (20171012215106), (20171012221231), (20171016125229), (20171016125516), (20171016223356), (20171016235656), (20171017235433), (20171019191035), (20171025184225), (20171026010933), (20171027061833), (20171028011642), (20171028173508), (20171030182857), (20171031232023), (20171031234356), (20171101023309), (20171104013543), (20171106045740), (20171106050209), (20171106103153), (20171106200036), (20171109231538), (20171110001134), (20171114010851), (20171114033357), (20171114225214), (20171114225713), (20171114232534), (20171115201624), (20171115225358), (20171119004204), (20171121075226), (20171121144138), (20171123065902), (20171127215847), (20171201073818), (20171205161052), (20171213062707), (20171220154922); diff --git a/test/lib/code_corps/emails/base_email_test.exs b/test/lib/code_corps/emails/base_email_test.exs new file mode 100644 index 000000000..8c43733f1 --- /dev/null +++ b/test/lib/code_corps/emails/base_email_test.exs @@ -0,0 +1,17 @@ +defmodule CodeCorps.Emails.BaseEmailTest do + use CodeCorps.ModelCase + use Bamboo.Test + alias CodeCorps.Emails.BaseEmail + + describe "get_name/1" do + test "get_name returns there on nil name" do + user = %CodeCorps.User{} + assert BaseEmail.get_name(user) == "there" + end + + test "get_name returns first_name of user" do + user = %CodeCorps.User{first_name: "Zacck"} + assert BaseEmail.get_name(user) == "Zacck" + end + end +end diff --git a/test/lib/code_corps/emails/receipt_email_test.exs b/test/lib/code_corps/emails/receipt_email_test.exs index fc744e8b3..e71db399a 100644 --- a/test/lib/code_corps/emails/receipt_email_test.exs +++ b/test/lib/code_corps/emails/receipt_email_test.exs @@ -46,11 +46,11 @@ defmodule CodeCorps.Emails.ReceiptEmailTest do assert template_model == %{ charge_amount: "$5.00", charge_statement_descriptor: "Test descriptor", + name: "Jimmy", project_title: "Code Corps", project_url: "http://localhost:4200/#{project.organization.slug}/#{project.slug}", project_current_donation_goal_description: "Test goal", - subject: "Your monthly donation to Code Corps", - user_first_name: "Jimmy" + subject: "Your monthly donation to Code Corps" } assert high_five_image_url end