diff --git a/logsrv/apps/logsrv_api/lib/logsrv_api.ex b/logsrv/apps/logsrv_api/lib/logsrv_api.ex index df4c822..3cfc81c 100644 --- a/logsrv/apps/logsrv_api/lib/logsrv_api.ex +++ b/logsrv/apps/logsrv_api/lib/logsrv_api.ex @@ -16,10 +16,27 @@ defmodule LogsrvApi do def journals do @repo.all(Journal) end - def journal(date) do + def journal(str) do + {:ok, date} = Filesystem.to_date(str) @repo.get!(Journal, date) end - # Todo - def get_by + def get_by_id(id) do + # Try to guess whether it's a page or a journal + {_, date} = Filesystem.to_date(id) + case date do + :invalid_format -> + IO.puts(id) + page(id) + _ -> + IO.puts(id) + journal(date) + end + end + + def read(page) do + @repo.read(page) + end + end diff --git a/logsrv/apps/logsrv_api/lib/logsrv_api/journal.ex b/logsrv/apps/logsrv_api/lib/logsrv_api/journal.ex index 4c1dd5c..67930fe 100644 --- a/logsrv/apps/logsrv_api/lib/logsrv_api/journal.ex +++ b/logsrv/apps/logsrv_api/lib/logsrv_api/journal.ex @@ -6,9 +6,11 @@ defmodule LogsrvApi.Journal do tags = [:fun] %{ + type: Journal, date: date, filename: fd, tags: tags } end + end diff --git a/logsrv/apps/logsrv_web/lib/logsrv_web/controllers/post_controller.ex b/logsrv/apps/logsrv_web/lib/logsrv_web/controllers/post_controller.ex index ef61fcf..5eeffca 100644 --- a/logsrv/apps/logsrv_web/lib/logsrv_web/controllers/post_controller.ex +++ b/logsrv/apps/logsrv_web/lib/logsrv_web/controllers/post_controller.ex @@ -6,4 +6,12 @@ defmodule LogsrvWeb.PostController do journals = LogsrvApi.journals() render(conn, "index.html", pages: pages, journals: journals) end + + def show(conn, %{"id" => id}) do + pages = LogsrvApi.pages() + journals = LogsrvApi.journals() + post = LogsrvApi.get_by_id(id) + content = post |> LogsrvApi.read + render(conn, "post.html", post: post, pages: pages, journals: journals, content: content) + end end diff --git a/logsrv/apps/logsrv_web/lib/logsrv_web/templates/post/index.html.heex b/logsrv/apps/logsrv_web/lib/logsrv_web/templates/post/index.html.heex index 3670572..2b168ae 100644 --- a/logsrv/apps/logsrv_web/lib/logsrv_web/templates/post/index.html.heex +++ b/logsrv/apps/logsrv_web/lib/logsrv_web/templates/post/index.html.heex @@ -11,7 +11,11 @@

Journals

diff --git a/logsrv/apps/logsrv_web/lib/logsrv_web/views/post_view.ex b/logsrv/apps/logsrv_web/lib/logsrv_web/views/post_view.ex index 831c2af..6b30570 100644 --- a/logsrv/apps/logsrv_web/lib/logsrv_web/views/post_view.ex +++ b/logsrv/apps/logsrv_web/lib/logsrv_web/views/post_view.ex @@ -1,3 +1,14 @@ defmodule LogsrvWeb.PostView do use LogsrvWeb, :view + import LogsrvApi.Journal + + def post_path(post) do + "/post/#{post.filename}" + end + + def content(post) do + IO.puts(post.filename) + post.filename |> Journal.locate |> LogsrvApi.read + end + end