summaryrefslogtreecommitdiff
path: root/src/flagd-ui/lib/flagd_ui_web/controllers
diff options
context:
space:
mode:
authorSaumit <justsaumit@protonmail.com>2025-09-27 02:14:26 +0530
committerSaumit <justsaumit@protonmail.com>2025-09-27 02:14:26 +0530
commit82e03978b89938219958032efb1448cc76baa181 (patch)
tree626f3e54d52ecd49be0ed3bee30abacc0453d081 /src/flagd-ui/lib/flagd_ui_web/controllers
Initial snapshot - OpenTelemetry demo 2.1.3 -f
Diffstat (limited to 'src/flagd-ui/lib/flagd_ui_web/controllers')
-rw-r--r--src/flagd-ui/lib/flagd_ui_web/controllers/error_html.ex27
-rw-r--r--src/flagd-ui/lib/flagd_ui_web/controllers/error_json.ex24
-rw-r--r--src/flagd-ui/lib/flagd_ui_web/controllers/feature_controller.ex12
-rw-r--r--src/flagd-ui/lib/flagd_ui_web/controllers/page_html.ex13
4 files changed, 76 insertions, 0 deletions
diff --git a/src/flagd-ui/lib/flagd_ui_web/controllers/error_html.ex b/src/flagd-ui/lib/flagd_ui_web/controllers/error_html.ex
new file mode 100644
index 0000000..3440c0d
--- /dev/null
+++ b/src/flagd-ui/lib/flagd_ui_web/controllers/error_html.ex
@@ -0,0 +1,27 @@
+# Copyright The OpenTelemetry Authors
+# SPDX-License-Identifier: Apache-2.0
+
+defmodule FlagdUiWeb.ErrorHTML do
+ @moduledoc """
+ This module is invoked by your endpoint in case of errors on HTML requests.
+
+ See config/config.exs.
+ """
+ use FlagdUiWeb, :html
+
+ # If you want to customize your error pages,
+ # uncomment the embed_templates/1 call below
+ # and add pages to the error directory:
+ #
+ # * lib/flagd_ui_web/controllers/error_html/404.html.heex
+ # * lib/flagd_ui_web/controllers/error_html/500.html.heex
+ #
+ # embed_templates "error_html/*"
+
+ # The default is to render a plain text page based on
+ # the template name. For example, "404.html" becomes
+ # "Not Found".
+ def render(template, _assigns) do
+ Phoenix.Controller.status_message_from_template(template)
+ end
+end
diff --git a/src/flagd-ui/lib/flagd_ui_web/controllers/error_json.ex b/src/flagd-ui/lib/flagd_ui_web/controllers/error_json.ex
new file mode 100644
index 0000000..a726099
--- /dev/null
+++ b/src/flagd-ui/lib/flagd_ui_web/controllers/error_json.ex
@@ -0,0 +1,24 @@
+# Copyright The OpenTelemetry Authors
+# SPDX-License-Identifier: Apache-2.0
+
+defmodule FlagdUiWeb.ErrorJSON do
+ @moduledoc """
+ This module is invoked by your endpoint in case of errors on JSON requests.
+
+ See config/config.exs.
+ """
+
+ # If you want to customize a particular status code,
+ # you may add your own clauses, such as:
+ #
+ # def render("500.json", _assigns) do
+ # %{errors: %{detail: "Internal Server Error"}}
+ # end
+
+ # By default, Phoenix returns the status message from
+ # the template name. For example, "404.json" becomes
+ # "Not Found".
+ def render(template, _assigns) do
+ %{errors: %{detail: Phoenix.Controller.status_message_from_template(template)}}
+ end
+end
diff --git a/src/flagd-ui/lib/flagd_ui_web/controllers/feature_controller.ex b/src/flagd-ui/lib/flagd_ui_web/controllers/feature_controller.ex
new file mode 100644
index 0000000..551f225
--- /dev/null
+++ b/src/flagd-ui/lib/flagd_ui_web/controllers/feature_controller.ex
@@ -0,0 +1,12 @@
+# Copyright The OpenTelemetry Authors
+# SPDX-License-Identifier: Apache-2.0
+
+defmodule FlagdUiWeb.FeatureController do
+ use FlagdUiWeb, :controller
+
+ def read(conn, _params) do
+ %{"flags" => flags} = GenServer.call(Storage, :read)
+
+ json(conn, %{"flags" => flags})
+ end
+end
diff --git a/src/flagd-ui/lib/flagd_ui_web/controllers/page_html.ex b/src/flagd-ui/lib/flagd_ui_web/controllers/page_html.ex
new file mode 100644
index 0000000..fc14663
--- /dev/null
+++ b/src/flagd-ui/lib/flagd_ui_web/controllers/page_html.ex
@@ -0,0 +1,13 @@
+# Copyright The OpenTelemetry Authors
+# SPDX-License-Identifier: Apache-2.0
+
+defmodule FlagdUiWeb.PageHTML do
+ @moduledoc """
+ This module contains pages rendered by PageController.
+
+ See the `page_html` directory for all templates available.
+ """
+ use FlagdUiWeb, :html
+
+ embed_templates "page_html/*"
+end