From 6ec48746e0da2091528a08dcb01244d5a0c2404c Mon Sep 17 00:00:00 2001 From: TzeYiing Date: Tue, 19 Dec 2023 15:44:20 +0800 Subject: [PATCH] chore: add fallback controller handlers --- .../controllers/api/fallback_controller.ex | 10 ++++++++++ lib/logflare_web/controllers/api/query_controller.ex | 4 ++++ .../controllers/api/query_controller_test.exs | 8 ++++++++ 3 files changed, 22 insertions(+) diff --git a/lib/logflare_web/controllers/api/fallback_controller.ex b/lib/logflare_web/controllers/api/fallback_controller.ex index 6c0b4407a..170d94457 100644 --- a/lib/logflare_web/controllers/api/fallback_controller.ex +++ b/lib/logflare_web/controllers/api/fallback_controller.ex @@ -22,4 +22,14 @@ defmodule LogflareWeb.Api.FallbackController do |> put_status(:not_found) |> json(%{error: "Not Found"}) end + + def call(conn, {:error, msg}) when is_atom(msg) do + call(conn, {:error, Atom.to_string(msg)}) + end + + def call(conn, {:error, msg}) when is_binary(msg) do + conn + |> put_status(400) + |> json(%{error: msg}) + end end diff --git a/lib/logflare_web/controllers/api/query_controller.ex b/lib/logflare_web/controllers/api/query_controller.ex index 27abb726d..bdb105bca 100644 --- a/lib/logflare_web/controllers/api/query_controller.ex +++ b/lib/logflare_web/controllers/api/query_controller.ex @@ -28,4 +28,8 @@ defmodule LogflareWeb.Api.QueryController do json(conn, %{result: rows}) end end + + def query(_conn, _params) do + {:error, "No query params provided. Supported query params are sql=, bq_sql=, and pg_sql="} + end end diff --git a/test/logflare_web/controllers/api/query_controller_test.exs b/test/logflare_web/controllers/api/query_controller_test.exs index 5391a9617..05207bba5 100644 --- a/test/logflare_web/controllers/api/query_controller_test.exs +++ b/test/logflare_web/controllers/api/query_controller_test.exs @@ -9,6 +9,14 @@ defmodule LogflareWeb.Api.QueryControllerTest do {:ok, user: user} end + + test "no query param provided", %{conn: conn, user: user} do + conn + |> add_access_token(user, ~w(private)) + |> get(~p"/api/query") + |> json_response(400) + end + describe "query with bq" do setup do stub(Goth, :fetch, fn _mod -> {:ok, %Goth.Token{token: "auth-token"}} end)