Skip to content

Commit

Permalink
Update admin API
Browse files Browse the repository at this point in the history
  • Loading branch information
rrrene committed Jun 27, 2016
1 parent 27abd42 commit bedcb9f
Show file tree
Hide file tree
Showing 2 changed files with 32 additions and 2 deletions.
19 changes: 19 additions & 0 deletions lib/elixir_status/impressionist.ex
Original file line number Diff line number Diff line change
Expand Up @@ -85,6 +85,25 @@ defmodule ElixirStatus.Impressionist do
|> Enum.filter(&(&1.context == "postings:#{uid}" && &1.subject_type == "short_link"))
|> Enum.count
end
def urls_sorted_by_most_clicks(stats_clicks, uid) do
stats_clicks
|> List.wrap
|> Enum.filter(&(&1.context == "postings:#{uid}" && &1.subject_type == "short_link"))
|> Enum.group_by(&(&1.subject_uid))
|> Map.values
|> Enum.sort_by(fn(list) -> Enum.count(list) end)
|> Enum.map(&list_to_url/1)
|> Enum.reverse
|> IO.inspect
end

defp list_to_url(nil), do: nil
defp list_to_url([]), do: nil
defp list_to_url(list) do
impression = list |> List.last
impression.subject_uid
|> ElixirStatus.LinkShortener.to_url
end

def count_views(stats_views, uid) do
stats_views
Expand Down
15 changes: 13 additions & 2 deletions web/views/admin/api_view.ex
Original file line number Diff line number Diff line change
Expand Up @@ -11,15 +11,26 @@ defmodule ElixirStatus.Admin.ApiView do
}
end

def to_json(%ElixirStatus.User{} = user) do
%{
full_name: user.full_name,
email: user.email,
provider: user.provider,
user_name: user.user_name,
twitter_handle: user.twitter_handle,
}
end
def to_json(posting, conn, stats_clicks, stats_views) do
{:safe, html} = posting.text |> sanitized_markdown
%{
id: posting.id,
published_at: posting.published_at |> xml_readable_date,
published_at: posting.published_at |> xml_readable_date(),
type: posting.type,
author: posting.user |> to_json(),
title: posting.title,
text: posting.text,
html: html,
referenced_urls: posting.referenced_urls |> Poison.decode!,
urls: Impressionist.urls_sorted_by_most_clicks(stats_clicks, posting.uid),
permalink: permalink_posting_path(conn, :show, posting.permalink),
link_clicks: Impressionist.count_clicks(stats_clicks, posting.uid),
detail_views: Impressionist.count_views(stats_views, posting.uid)
Expand Down

0 comments on commit bedcb9f

Please sign in to comment.