Skip to content

Commit

Permalink
Began fixing dialyzer warnings.
Browse files Browse the repository at this point in the history
  • Loading branch information
asummers committed Nov 22, 2017
1 parent d721dc7 commit 61c558e
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 11 deletions.
19 changes: 11 additions & 8 deletions lib/code_corps/analytics/segment_plug_tracker.ex
Original file line number Diff line number Diff line change
Expand Up @@ -11,24 +11,27 @@ defmodule CodeCorps.Analytics.SegmentPlugTracker do

@spec maybe_track(Plug.Conn.t) :: Plug.Conn.t
def maybe_track(conn) do
success = successful?(conn)
successful? = successful?(conn)

action = SegmentDataExtractor.get_action(conn)
resource = SegmentDataExtractor.get_resource(conn)

case success && SegmentTrackingSupport.includes?(action, resource) do
true ->
user_id = SegmentDataExtractor.get_user_id(conn, resource)
SegmentTracker.track(user_id, action, resource)
mark_tracked(conn)
false ->
mark_untracked(conn)
if successful? && SegmentTrackingSupport.includes?(action, resource) do
user_id = SegmentDataExtractor.get_user_id(conn, resource)
SegmentTracker.track(user_id, action, resource)
mark_tracked(conn)
else
mark_untracked(conn)
end
end

@spec successful?(Plug.Conn.t) :: boolean
defp successful?(%Plug.Conn{status: status}) when status in [200, 201, 204], do: true
defp successful?(_), do: false

@spec mark_untracked(Plug.Conn.t) :: Plug.Conn.t
defp mark_untracked(conn), do: conn |> Plug.Conn.assign(:segment_tracked, false)

@spec mark_tracked(Plug.Conn.t) :: Plug.Conn.t
defp mark_tracked(conn), do: conn |> Plug.Conn.assign(:segment_tracked, true)
end
6 changes: 3 additions & 3 deletions lib/code_corps/analytics/segment_tracker.ex
Original file line number Diff line number Diff line change
Expand Up @@ -11,17 +11,17 @@ defmodule CodeCorps.Analytics.SegmentTracker do
@api Application.get_env(:code_corps, :analytics)

@doc """
Calls `identify` in the configured API module.
Calls `identify` in the configured API module.
"""
@spec identify(CodeCorps.User.t) :: any
def identify(%CodeCorps.User{} = user) do
@api.identify(user.id, SegmentTraitsBuilder.build(user))
end

@doc """
Calls `track` in the configured API module.
Calls `track` in the configured API module.
"""
@spec track(integer, atom | String.t, struct) :: any
@spec track(String.t, atom | String.t, struct) :: any
def track(user_id, action, data) when is_atom(action) do
event = SegmentEventNameBuilder.build(action, data)
traits = SegmentTraitsBuilder.build(data)
Expand Down

0 comments on commit 61c558e

Please sign in to comment.