From dbd0441904f63ccf16f9b7613d70e6ddbad69ee2 Mon Sep 17 00:00:00 2001 From: Silberengel Date: Tue, 7 Apr 2026 08:47:32 +0200 Subject: [PATCH] fix issue #4 allow the user to see something meaningful at /api/ path, rather than throwing an error --- .../controllers/api_controller.ex | 27 +++++++++++++++++++ lib/gc_index_relay_web/router.ex | 1 + 2 files changed, 28 insertions(+) create mode 100644 lib/gc_index_relay_web/controllers/api_controller.ex diff --git a/lib/gc_index_relay_web/controllers/api_controller.ex b/lib/gc_index_relay_web/controllers/api_controller.ex new file mode 100644 index 0000000..b3247cc --- /dev/null +++ b/lib/gc_index_relay_web/controllers/api_controller.ex @@ -0,0 +1,27 @@ +defmodule GcIndexRelayWeb.ApiController do + use GcIndexRelayWeb, :controller + + def index(conn, _params) do + json(conn, %{ + relay: "gc_index_relay", + version: "0.1", + endpoints: [ + %{ + method: "GET", + path: "/api/events", + description: "List events (requires filter params)" + }, + %{ + method: "POST", + path: "/api/events/filter", + description: "Query events with a NIP-01 filter body" + }, + %{method: "GET", path: "/api/events/:id", description: "Get a single event by ID"}, + %{method: "POST", path: "/api/events", description: "Publish a new event"}, + %{method: "DELETE", path: "/api/events/:id", description: "Delete an event by ID"}, + %{method: "GET", path: "/api/swagger", description: "Swagger UI"}, + %{method: "GET", path: "/health", description: "Health check"} + ] + }) + end +end diff --git a/lib/gc_index_relay_web/router.ex b/lib/gc_index_relay_web/router.ex index 96e4e80..02026e8 100644 --- a/lib/gc_index_relay_web/router.ex +++ b/lib/gc_index_relay_web/router.ex @@ -25,6 +25,7 @@ defmodule GcIndexRelayWeb.Router do scope "/api", GcIndexRelayWeb do pipe_through :api + get "/", ApiController, :index get "/events", FilterController, :index post "/events/filter", FilterController, :query resources "/events", EventController, only: [:show, :create, :delete]