From c9a399a0a7a6cc0cc73a4f39e60cbbc303565386 Mon Sep 17 00:00:00 2001 From: Inhji Date: Mon, 21 Aug 2023 19:15:57 +0200 Subject: [PATCH] error logging --- lib/plug_micropub.ex | 64 ++++++++++++++++++++++++++++++++------------ 1 file changed, 47 insertions(+), 17 deletions(-) diff --git a/lib/plug_micropub.ex b/lib/plug_micropub.ex index 24fa188..45b710e 100644 --- a/lib/plug_micropub.ex +++ b/lib/plug_micropub.ex @@ -15,7 +15,7 @@ defmodule PlugMicropub do @doc false def init(opts) do - logging = + logging = Keyword.get(opts, :logging) || false handler = @@ -40,6 +40,7 @@ defmodule PlugMicropub do with {:ok, access_token, conn} <- get_access_token(conn), {:ok, action, conn} <- get_action(conn) do Logger.info("Micropub: Handling action [#{action}]") + Logger.info("Micropub: Request Body #{inspect(conn.body_params)}") handle_action(action, access_token, conn) else error -> send_error(conn, error) @@ -49,7 +50,7 @@ defmodule PlugMicropub do get "/" do with {:ok, access_token, conn} <- get_access_token(conn), {:ok, query} <- get_query(conn) do - Logger.info("Micropub: Handling query [#{query}]") + Logger.info("Micropub: Handling query [#{query}]") handle_query(query, access_token, conn) else error -> send_error(conn, error) @@ -60,6 +61,7 @@ defmodule PlugMicropub do handler = conn.private[:plug_micropub][:handler] Logger.info("Micropub: Handling media") + with {:ok, access_token, conn} <- get_access_token(conn), {:ok, file} <- get_file(conn), {:ok, url} <- handler.handle_media(file, access_token) do @@ -177,7 +179,9 @@ defmodule PlugMicropub do |> put_resp_header("location", url) |> send_resp(code, "") else - error -> send_error(conn, error) + error -> + Logger.warning("Micropub: Error while handling create: #{inspect(error)}") + send_error(conn, error) end end @@ -188,9 +192,13 @@ defmodule PlugMicropub do with "application/json" <- content_type, {url, properties} when is_binary(url) <- Map.pop(conn.body_params, "url"), - {:ok, replace, add, delete} <- parse_update_properties(properties), - do: do_update(conn, access_token, url, replace, add, delete), - else: (_ -> send_error(conn, {:error, :invalid_request})) + {:ok, replace, add, delete} <- parse_update_properties(properties) do + do_update(conn, access_token, url, replace, add, delete) + else + error -> + Logger.warning("Micropub: Error while handling update: #{inspect(error)}") + send_error(conn, {:error, :invalid_request}) + end end defp handle_action(:delete, access_token, conn) do @@ -215,8 +223,12 @@ defmodule PlugMicropub do handler = conn.private[:plug_micropub][:handler] case handler.handle_config_query(access_token) do - {:ok, content} -> send_content(conn, content) - error -> send_error(conn, error) + {:ok, content} -> + send_content(conn, content) + + error -> + Logger.warning("Micropub: Error while handling config: #{inspect(error)}") + send_error(conn, error) end end @@ -226,17 +238,25 @@ defmodule PlugMicropub do handler = conn.private[:plug_micropub][:handler] case handler.handle_category_query(access_token) do - {:ok, content} -> send_content(conn, content) - error -> send_error(conn, error) + {:ok, content} -> + send_content(conn, content) + + error -> + Logger.warning("Micropub: Error while handling category: #{inspect(error)}") + send_error(conn, error) end end defp handle_query(:source, access_token, conn) do Logger.info("Micropub: Handle source query") - with {:ok, url} <- Map.fetch(conn.query_params, "url"), - do: do_source_query(conn, access_token, url), - else: (_ -> send_error(conn, {:error, :invalid_request})) + with {:ok, url} <- Map.fetch(conn.query_params, "url") do + do_source_query(conn, access_token, url) + else + _ -> + Logger.warning("Micropub: Error while handling source: #{inspect(error)}") + send_error(conn, {:error, :invalid_request}) + end end defp handle_query(:"syndicate-to", access_token, conn) do @@ -245,8 +265,12 @@ defmodule PlugMicropub do handler = conn.private[:plug_micropub][:handler] case handler.handle_syndicate_to_query(access_token) do - {:ok, content} -> send_content(conn, content) - error -> send_error(conn, error) + {:ok, content} -> + send_content(conn, content) + + error -> + Logger.warning("Micropub: Error while handling syndicate-to: #{inspect(error)}") + send_error(conn, error) end end @@ -256,8 +280,12 @@ defmodule PlugMicropub do handler = conn.private[:plug_micropub][:handler] case handler.handle_channel_query(access_token) do - {:ok, content} -> send_content(conn, content) - error -> send_error(conn, error) + {:ok, content} -> + send_content(conn, content) + + error -> + Logger.warning("Micropub: Error while handling channel: #{inspect(error)}") + send_error(conn, error) end end @@ -347,6 +375,7 @@ defmodule PlugMicropub do {:ok, properties} when is_map(properties) <- Map.fetch(params, "properties") do properties = Map.new(properties) + Logger.info("Micropub: Parsed properties #{inspect(properties)}") {:ok, type, properties} else _ -> {:error, :invalid_request} @@ -360,6 +389,7 @@ defmodule PlugMicropub do |> Enum.map(fn {k, v} -> {k, List.wrap(v)} end) |> Map.new() + Logger.info("Micropub: Parsed properties #{inspect(properties)}") {:ok, type, properties} else _ -> {:error, :invalid_request}