From 2d371b8f14af5b966e689ed49ca48c17158d74db Mon Sep 17 00:00:00 2001 From: Inhji Date: Mon, 21 Aug 2023 18:58:47 +0200 Subject: [PATCH] add logger --- lib/plug_micropub.ex | 30 +++++++++++++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) diff --git a/lib/plug_micropub.ex b/lib/plug_micropub.ex index 6f4aae6..24fa188 100644 --- a/lib/plug_micropub.ex +++ b/lib/plug_micropub.ex @@ -6,6 +6,7 @@ defmodule PlugMicropub do """ use Plug.Router + require Logger plug :match plug :dispatch @@ -14,6 +15,9 @@ defmodule PlugMicropub do @doc false def init(opts) do + logging = + Keyword.get(opts, :logging) || false + handler = Keyword.get(opts, :handler) || raise ArgumentError, "Micropub Plug requires :handler option" @@ -21,7 +25,7 @@ defmodule PlugMicropub do Keyword.get(opts, :json_encoder) || raise ArgumentError, "Micropub Plug requires :json_encoder option" - [handler: handler, json_encoder: json_encoder] + [handler: handler, json_encoder: json_encoder, logging: logging] end @doc false @@ -35,6 +39,7 @@ defmodule PlugMicropub do post "/" do with {:ok, access_token, conn} <- get_access_token(conn), {:ok, action, conn} <- get_action(conn) do + Logger.info("Micropub: Handling action [#{action}]") handle_action(action, access_token, conn) else error -> send_error(conn, error) @@ -44,6 +49,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}]") handle_query(query, access_token, conn) else error -> send_error(conn, error) @@ -53,6 +59,7 @@ defmodule PlugMicropub do post "/media" 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 @@ -65,6 +72,7 @@ defmodule PlugMicropub do end match _ do + Logger.warn("Micropub: Unsupported url") send_error(conn, {:error, :invalid_request}) end @@ -95,6 +103,8 @@ defmodule PlugMicropub do code = get_error_code(body.error) body = json_encoder.encode!(body) + Logger.warning("Micropub: Sending error with code #{code}: #{inspect(body)}") + conn |> put_resp_content_type("application/json") |> send_resp(code, body) @@ -156,6 +166,8 @@ defmodule PlugMicropub do end defp handle_action(:create, access_token, conn) do + Logger.info("Micropub: Handle create") + content_type = conn |> get_req_header("content-type") |> List.first() handler = conn.private[:plug_micropub][:handler] @@ -170,6 +182,8 @@ defmodule PlugMicropub do end defp handle_action(:update, access_token, conn) do + Logger.info("Micropub: Handle update") + content_type = conn |> get_req_header("content-type") |> List.first() with "application/json" <- content_type, @@ -180,18 +194,24 @@ defmodule PlugMicropub do end defp handle_action(:delete, access_token, conn) do + Logger.info("Micropub: Handle delete") + with {:ok, url} <- Map.fetch(conn.body_params, "url"), do: do_delete(conn, access_token, url), else: (_ -> send_error(conn, {:error, :invalid_request})) end defp handle_action(:undelete, access_token, conn) do + Logger.info("Micropub: Handle undelete") + with {:ok, url} <- Map.fetch(conn.body_params, "url"), do: do_undelete(conn, access_token, url), else: (_ -> send_error(conn, {:error, :invalid_request})) end defp handle_query(:config, access_token, conn) do + Logger.info("Micropub: Handle config query") + handler = conn.private[:plug_micropub][:handler] case handler.handle_config_query(access_token) do @@ -201,6 +221,8 @@ defmodule PlugMicropub do end defp handle_query(:category, access_token, conn) do + Logger.info("Micropub: Handle category query") + handler = conn.private[:plug_micropub][:handler] case handler.handle_category_query(access_token) do @@ -210,12 +232,16 @@ defmodule PlugMicropub do 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})) end defp handle_query(:"syndicate-to", access_token, conn) do + Logger.info("Micropub: Handle syndicate-to query") + handler = conn.private[:plug_micropub][:handler] case handler.handle_syndicate_to_query(access_token) do @@ -225,6 +251,8 @@ defmodule PlugMicropub do end defp handle_query(:channel, access_token, conn) do + Logger.info("Micropub: Handle channel query") + handler = conn.private[:plug_micropub][:handler] case handler.handle_channel_query(access_token) do