diff --git a/config/runtime.exs b/config/runtime.exs index d30ee3c..b187ab6 100644 --- a/config/runtime.exs +++ b/config/runtime.exs @@ -83,8 +83,10 @@ if config_env() == :prod do username: System.get_env("SMTP_USERNAME"), password: System.get_env("SMTP_PASSWORD"), ssl: System.get_env("SMTP_SSL", "true") == "true", - tls: String.to_atom(System.get_env("SMTP_TLS", "always")), # always, never, if_available - auth: String.to_atom(System.get_env("SMTP_AUTH", "always")), # always, never, if_available + # always, never, if_available + tls: String.to_atom(System.get_env("SMTP_TLS", "always")), + # always, never, if_available + auth: String.to_atom(System.get_env("SMTP_AUTH", "always")), port: String.to_integer(System.get_env("SMTP_PORT", "25")) end diff --git a/lib/claper/accounts.ex b/lib/claper/accounts.ex index e977033..fa59fd5 100644 --- a/lib/claper/accounts.ex +++ b/lib/claper/accounts.ex @@ -410,9 +410,11 @@ defmodule Claper.Accounts do Ecto.Multi.new() |> Ecto.Multi.run(:run, fn repo, _changes -> user = repo.get_by(User, email: token.sent_to) - if (is_nil(user)) do + + if is_nil(user) do UserNotifier.deliver_welcome(token.sent_to) end + {:ok, user || %User{email: token.sent_to}} end) |> Ecto.Multi.insert_or_update(:user, fn %{run: user} -> User.confirm_changeset(user) end) diff --git a/lib/claper/accounts/user.ex b/lib/claper/accounts/user.ex index 13186bb..18c4f6f 100644 --- a/lib/claper/accounts/user.ex +++ b/lib/claper/accounts/user.ex @@ -111,5 +111,4 @@ defmodule Claper.Accounts.User do add_error(changeset, :current_password, "is not valid") end end - end diff --git a/lib/claper/accounts/user_notifier.ex b/lib/claper/accounts/user_notifier.ex index 0094b1c..d5edd97 100644 --- a/lib/claper/accounts/user_notifier.ex +++ b/lib/claper/accounts/user_notifier.ex @@ -19,6 +19,7 @@ defmodule Claper.Accounts.UserNotifier do def deliver_magic_link(email, url) do email = ClaperWeb.Notifiers.UserNotifier.magic(email, url) + with {:ok, _metadata} <- Mailer.deliver(email) do {:ok, email} end @@ -26,6 +27,7 @@ defmodule Claper.Accounts.UserNotifier do def deliver_welcome(email) do email = ClaperWeb.Notifiers.UserNotifier.welcome(email) + with {:ok, _metadata} <- Mailer.deliver(email) do {:ok, email} end @@ -76,6 +78,7 @@ defmodule Claper.Accounts.UserNotifier do """ def deliver_update_email_instructions(user, url) do email = ClaperWeb.Notifiers.UserNotifier.update_email(user, url) + with {:ok, _metadata} <- Mailer.deliver(email) do {:ok, email} end diff --git a/lib/claper/events.ex b/lib/claper/events.ex index 779a006..f235aa8 100644 --- a/lib/claper/events.ex +++ b/lib/claper/events.ex @@ -95,7 +95,10 @@ defmodule Claper.Events do """ def get_managed_event!(current_user, id, preload \\ []) do event = Repo.get_by!(Event, uuid: id) - is_leader = Claper.Events.is_leaded_by(current_user.email, event) || event.user_id == current_user.id + + is_leader = + Claper.Events.is_leaded_by(current_user.email, event) || event.user_id == current_user.id + if is_leader do event |> Repo.preload(preload) else diff --git a/lib/claper/polls.ex b/lib/claper/polls.ex index ffff02b..95fa974 100644 --- a/lib/claper/polls.ex +++ b/lib/claper/polls.ex @@ -166,8 +166,7 @@ defmodule Claper.Polls do {:error, changeset} -> {:error, %{changeset | action: :update}} - end - + end end @doc """ @@ -306,7 +305,6 @@ defmodule Claper.Polls do {:ok, poll} end - @doc """ Gets a single poll_vote. diff --git a/lib/claper/posts.ex b/lib/claper/posts.ex index 314f47a..94f4419 100644 --- a/lib/claper/posts.ex +++ b/lib/claper/posts.ex @@ -176,6 +176,7 @@ defmodule Claper.Posts do """ def create_reaction(%{post: nil} = attrs), do: create_reaction(%{attrs | post: %Post{}}) + def create_reaction(%{post: post} = attrs) do case %Reaction{} |> Map.put(:post_id, post.id) diff --git a/lib/claper/posts/post.ex b/lib/claper/posts/post.ex index 3da80e4..959c23a 100644 --- a/lib/claper/posts/post.ex +++ b/lib/claper/posts/post.ex @@ -22,9 +22,16 @@ defmodule Claper.Posts.Post do @doc false def changeset(post, attrs) do post - |> cast(attrs, [:body, :attendee_identifier, :user_id, :like_count, :love_count, :lol_count, :position]) + |> cast(attrs, [ + :body, + :attendee_identifier, + :user_id, + :like_count, + :love_count, + :lol_count, + :position + ]) |> validate_required([:body, :position]) |> validate_length(:body, min: 2, max: 250) end - end diff --git a/lib/claper/presentations/presentation_state.ex b/lib/claper/presentations/presentation_state.ex index 3e97242..4e16779 100644 --- a/lib/claper/presentations/presentation_state.ex +++ b/lib/claper/presentations/presentation_state.ex @@ -17,7 +17,14 @@ defmodule Claper.Presentations.PresentationState do @doc false def changeset(presentation_state, attrs) do presentation_state - |> cast(attrs, [:position, :chat_visible, :poll_visible, :join_screen_visible, :banned, :presentation_file_id]) + |> cast(attrs, [ + :position, + :chat_visible, + :poll_visible, + :join_screen_visible, + :banned, + :presentation_file_id + ]) |> validate_required([]) end end diff --git a/lib/claper/tasks/converter.ex b/lib/claper/tasks/converter.ex index c1ab806..016fbf3 100644 --- a/lib/claper/tasks/converter.ex +++ b/lib/claper/tasks/converter.ex @@ -47,13 +47,14 @@ defmodule Claper.Tasks.Converter do IO.puts("Clearing #{hash}...") if System.get_env("PRESENTATION_STORAGE", "local") == "local" do - File.rm_rf(Path.join([ - :code.priv_dir(:claper), - "static", - "uploads", - "#{hash}" - ])) - + File.rm_rf( + Path.join([ + :code.priv_dir(:claper), + "static", + "uploads", + "#{hash}" + ]) + ) else stream = ExAws.S3.list_objects(System.get_env("AWS_PRES_BUCKET"), prefix: "presentations/#{hash}") @@ -115,28 +116,27 @@ defmodule Claper.Tasks.Converter do end defp jpg_upload(%Result{status: 0}, hash, path, presentation, user_id) do - files = Path.wildcard("#{path}/*.jpg") # assign new hash to avoid cache issues new_hash = :erlang.phash2("#{hash}-#{System.system_time(:second)}") if System.get_env("PRESENTATION_STORAGE", "local") == "local" do - - File.rename(Path.join([ - :code.priv_dir(:claper), - "static", - "uploads", - "#{hash}" - ]), Path.join([ - :code.priv_dir(:claper), - "static", - "uploads", - "#{new_hash}" - ])) - + File.rename( + Path.join([ + :code.priv_dir(:claper), + "static", + "uploads", + "#{hash}" + ]), + Path.join([ + :code.priv_dir(:claper), + "static", + "uploads", + "#{new_hash}" + ]) + ) else - for f <- files do IO.puts("Uploads #{f} to presentations/#{new_hash}/#{Path.basename(f)}") @@ -149,7 +149,6 @@ defmodule Claper.Tasks.Converter do ) |> ExAws.request() end - end if !is_nil(presentation.hash) do diff --git a/lib/claper_web/channels/presence.ex b/lib/claper_web/channels/presence.ex index 52c9fa5..ee26b65 100644 --- a/lib/claper_web/channels/presence.ex +++ b/lib/claper_web/channels/presence.ex @@ -5,6 +5,7 @@ defmodule ClaperWeb.Presence do See the [`Phoenix.Presence`](http://hexdocs.pm/phoenix/Phoenix.Presence.html) docs for more details. """ - use Phoenix.Presence, otp_app: :claper, - pubsub_server: Claper.PubSub + use Phoenix.Presence, + otp_app: :claper, + pubsub_server: Claper.PubSub end diff --git a/lib/claper_web/controllers/post_controller.ex b/lib/claper_web/controllers/post_controller.ex index ecf721d..1130697 100644 --- a/lib/claper_web/controllers/post_controller.ex +++ b/lib/claper_web/controllers/post_controller.ex @@ -4,29 +4,31 @@ defmodule ClaperWeb.PostController do def index(conn, %{"event_id" => event_id}) do try do with event <- Claper.Events.get_event!(event_id), - posts <- Claper.Posts.list_posts(event.uuid, [:user, :attendee]) do + posts <- Claper.Posts.list_posts(event.uuid, [:user, :attendee]) do render(conn, "index.json", posts: posts) end rescue - Ecto.NoResultsError -> conn - |> put_status(:not_found) - |> put_view(ClaperWeb.ErrorView) - |> render(:"404") + Ecto.NoResultsError -> + conn + |> put_status(:not_found) + |> put_view(ClaperWeb.ErrorView) + |> render(:"404") end end + def create(conn, %{"event_id" => event_id, "body" => body}) do try do with event <- Claper.Events.get_event!(event_id) do case Claper.Posts.create_post(event, %{body: body}) do {:ok, post} -> render(conn, "post.json", post: post) end - end rescue - Ecto.NoResultsError -> conn - |> put_status(:not_found) - |> put_view(ClaperWeb.ErrorView) - |> render(:"404") + Ecto.NoResultsError -> + conn + |> put_status(:not_found) + |> put_view(ClaperWeb.ErrorView) + |> render(:"404") end end end diff --git a/lib/claper_web/controllers/user_auth.ex b/lib/claper_web/controllers/user_auth.ex index f40c51f..653462a 100644 --- a/lib/claper_web/controllers/user_auth.ex +++ b/lib/claper_web/controllers/user_auth.ex @@ -133,7 +133,7 @@ defmodule ClaperWeb.UserAuth do conn else conn - #|> redirect(to: Routes.user_registration_path(conn, :confirm)) + # |> redirect(to: Routes.user_registration_path(conn, :confirm)) end else conn diff --git a/lib/claper_web/controllers/user_session_controller.ex b/lib/claper_web/controllers/user_session_controller.ex index c13516a..c6485e0 100644 --- a/lib/claper_web/controllers/user_session_controller.ex +++ b/lib/claper_web/controllers/user_session_controller.ex @@ -9,12 +9,12 @@ defmodule ClaperWeb.UserSessionController do |> render("new.html", error_message: nil) end - #def create(conn, %{"user" => %{"email" => email}} = _user_params) do + # def create(conn, %{"user" => %{"email" => email}} = _user_params) do # Accounts.deliver_magic_link(email, &Routes.user_confirmation_url(conn, :confirm_magic, &1)) # conn # |> redirect(to: Routes.user_registration_path(conn, :confirm, %{email: email})) - #end + # end def create(conn, %{"user" => user_params}) do %{"email" => email, "password" => password} = user_params diff --git a/lib/claper_web/live/event_live/form_component.ex b/lib/claper_web/live/event_live/form_component.ex index 0562fd3..20bea65 100644 --- a/lib/claper_web/live/event_live/form_component.ex +++ b/lib/claper_web/live/event_live/form_component.ex @@ -153,7 +153,6 @@ defmodule ClaperWeb.EventLive.FormComponent do end defp create_event(socket, event_params, hash, ext) do - case Events.create_event( event_params |> Map.put("user_id", socket.assigns.current_user.id) diff --git a/lib/claper_web/live/event_live/index.ex b/lib/claper_web/live/event_live/index.ex index f31ae11..4685058 100644 --- a/lib/claper_web/live/event_live/index.ex +++ b/lib/claper_web/live/event_live/index.ex @@ -90,5 +90,4 @@ defmodule ClaperWeb.EventLive.Index do defp list_managed_events(socket) do Events.list_managed_events_by(socket.assigns.current_user.email, [:presentation_file]) end - end diff --git a/lib/claper_web/live/event_live/show.ex b/lib/claper_web/live/event_live/show.ex index 500e11d..476fcb1 100644 --- a/lib/claper_web/live/event_live/show.ex +++ b/lib/claper_web/live/event_live/show.ex @@ -88,7 +88,6 @@ defmodule ClaperWeb.EventLive.Show do {:ok, socket |> assign(:empty_room, Enum.count(socket.assigns.posts) == 0), temporary_assigns: [posts: []]} - end defp leader_list(socket, event) do diff --git a/lib/claper_web/live/live_helpers.ex b/lib/claper_web/live/live_helpers.ex index 318dc1d..7124ae5 100644 --- a/lib/claper_web/live/live_helpers.ex +++ b/lib/claper_web/live/live_helpers.ex @@ -20,5 +20,4 @@ defmodule ClaperWeb.LiveHelpers do modal_opts = [id: :modal, return_to: path, component: component, opts: opts] live_component(ClaperWeb.ModalComponent, modal_opts) end - end diff --git a/lib/claper_web/live/stat_live/index.ex b/lib/claper_web/live/stat_live/index.ex index 33dd434..040806f 100644 --- a/lib/claper_web/live/stat_live/index.ex +++ b/lib/claper_web/live/stat_live/index.ex @@ -23,15 +23,18 @@ defmodule ClaperWeb.StatLive.Index do socket |> assign(:event, event) |> assign( - :distinct_poster_count, - distinct_poster_count - ) + :distinct_poster_count, + distinct_poster_count + ) |> assign( :grouped_total_votes, grouped_total_votes ) |> assign(:average_voters, average_voters(grouped_total_votes)) - |> assign(:engagement_rate, calculate_engagement_rate(grouped_total_votes, distinct_poster_count, event)) + |> assign( + :engagement_rate, + calculate_engagement_rate(grouped_total_votes, distinct_poster_count, event) + ) |> assign(:posts, list_posts(socket, event.uuid))} end @@ -49,9 +52,16 @@ defmodule ClaperWeb.StatLive.Index do total_polls = Enum.count(grouped_total_votes) if total_polls == 0 do - (distinct_poster_count/event.audience_peak) * 100 |> Float.round |> :erlang.float_to_binary(decimals: 0) |> :erlang.binary_to_integer + (distinct_poster_count / event.audience_peak * 100) + |> Float.round() + |> :erlang.float_to_binary(decimals: 0) + |> :erlang.binary_to_integer() else - (((distinct_poster_count/event.audience_peak) + (average_voters(grouped_total_votes))/event.audience_peak) / 2) * 100 |> Float.round |> :erlang.float_to_binary(decimals: 0) |> :erlang.binary_to_integer + ((distinct_poster_count / event.audience_peak + + average_voters(grouped_total_votes) / event.audience_peak) / 2 * 100) + |> Float.round() + |> :erlang.float_to_binary(decimals: 0) + |> :erlang.binary_to_integer() end end @@ -61,9 +71,11 @@ defmodule ClaperWeb.StatLive.Index do if total_polls == 0 do 0 else - (Enum.sum(grouped_total_votes)/total_polls) |> Float.round |> :erlang.float_to_binary(decimals: 0) |> :erlang.binary_to_integer + (Enum.sum(grouped_total_votes) / total_polls) + |> Float.round() + |> :erlang.float_to_binary(decimals: 0) + |> :erlang.binary_to_integer() end - end defp list_posts(_socket, event_id) do diff --git a/lib/claper_web/notifiers/user_notifier.ex b/lib/claper_web/notifiers/user_notifier.ex index 6208ebf..1fbbe84 100644 --- a/lib/claper_web/notifiers/user_notifier.ex +++ b/lib/claper_web/notifiers/user_notifier.ex @@ -5,7 +5,10 @@ defmodule ClaperWeb.Notifiers.UserNotifier do def magic(email, url) do new() |> to(email) - |> from({System.get_env("MAIL_FROM_NAME", "Claper"), System.get_env("MAIL_FROM", "noreply@claper.co")}) + |> from( + {System.get_env("MAIL_FROM_NAME", "Claper"), + System.get_env("MAIL_FROM", "noreply@claper.co")} + ) |> subject(gettext("Connect to Claper")) |> render_body("magic.html", %{url: url}) end @@ -13,7 +16,10 @@ defmodule ClaperWeb.Notifiers.UserNotifier do def welcome(email) do new() |> to(email) - |> from({System.get_env("MAIL_FROM_NAME", "Claper"), System.get_env("MAIL_FROM", "noreply@claper.co")}) + |> from( + {System.get_env("MAIL_FROM_NAME", "Claper"), + System.get_env("MAIL_FROM", "noreply@claper.co")} + ) |> subject(gettext("Next steps to boost your presentations")) |> render_body("welcome.html", %{email: email}) end @@ -21,7 +27,10 @@ defmodule ClaperWeb.Notifiers.UserNotifier do def update_email(user, url) do new() |> to(user.email) - |> from({System.get_env("MAIL_FROM_NAME", "Claper"), System.get_env("MAIL_FROM", "noreply@claper.co")}) + |> from( + {System.get_env("MAIL_FROM_NAME", "Claper"), + System.get_env("MAIL_FROM", "noreply@claper.co")} + ) |> subject(gettext("Update email instructions")) |> render_body("change.html", %{user: user, url: url}) end diff --git a/lib/claper_web/plugs/locale.ex b/lib/claper_web/plugs/locale.ex index b9f40cb..339e48a 100644 --- a/lib/claper_web/plugs/locale.ex +++ b/lib/claper_web/plugs/locale.ex @@ -4,9 +4,11 @@ defmodule ClaperWeb.Plugs.Locale do def init(_opts), do: nil def call(conn, _opts) do - known_locales = Gettext.known_locales(ClaperWeb.Gettext) - accepted_languages = extract_accept_language(conn) |> Enum.reject(&String.length(&1) > 2 && not Enum.member?(known_locales, &1)) + + accepted_languages = + extract_accept_language(conn) + |> Enum.reject(&(String.length(&1) > 2 && not Enum.member?(known_locales, &1))) case accepted_languages do [locale | _] -> diff --git a/lib/claper_web/router.ex b/lib/claper_web/router.ex index 901911c..3d9c0ef 100644 --- a/lib/claper_web/router.ex +++ b/lib/claper_web/router.ex @@ -88,8 +88,8 @@ defmodule ClaperWeb.Router do # node running the Phoenix server. if Mix.env() == :dev || System.get_env("ENABLE_MAILBOX_ROUTE", "false") == "true" do scope "/dev" do - - if System.get_env("MAILBOX_USER") && System.get_env("MAILBOX_PASSWORD") && System.get_env("ENABLE_MAILBOX_ROUTE", "false") == "true" do + if System.get_env("MAILBOX_USER") && System.get_env("MAILBOX_PASSWORD") && + System.get_env("ENABLE_MAILBOX_ROUTE", "false") == "true" do pipe_through [:browser, :protect_with_basic_auth] else pipe_through [:browser] @@ -142,5 +142,4 @@ defmodule ClaperWeb.Router do password = System.fetch_env!("MAILBOX_PASSWORD") Plug.BasicAuth.basic_auth(conn, username: username, password: password) end - end diff --git a/lib/claper_web/views/components/alert_component.ex b/lib/claper_web/views/components/alert_component.ex index 65b14b9..b41ce18 100644 --- a/lib/claper_web/views/components/alert_component.ex +++ b/lib/claper_web/views/components/alert_component.ex @@ -5,6 +5,7 @@ defmodule ClaperWeb.Component.Alert do assigns = assigns |> assign_new(:stick, fn -> false end) + ~H"""