Merge branch 'feature/search-authenticated-only' into 'develop'
[akkoma] / lib / pleroma / web / router.ex
index 4c29b24eb47d465bc838c575e42566ab3f8e5632..08c74a742ce180797e3fa29be24fa44bad8b92f2 100644 (file)
@@ -414,7 +414,12 @@ defmodule Pleroma.Web.Router do
 
     get("/trends", MastodonAPIController, :empty_array)
 
-    get("/accounts/search", MastodonAPIController, :account_search)
+    scope [] do
+      pipe_through(:oauth_read)
+
+      get("/search", MastodonAPIController, :search)
+      get("/accounts/search", MastodonAPIController, :account_search)
+    end
 
     scope [] do
       pipe_through(:oauth_read_or_public)
@@ -431,14 +436,12 @@ defmodule Pleroma.Web.Router do
       get("/accounts/:id/following", MastodonAPIController, :following)
       get("/accounts/:id", MastodonAPIController, :user)
 
-      get("/search", MastodonAPIController, :search)
-
       get("/pleroma/accounts/:id/favourites", MastodonAPIController, :user_favourites)
     end
   end
 
   scope "/api/v2", Pleroma.Web.MastodonAPI do
-    pipe_through([:api, :oauth_read_or_public])
+    pipe_through([:api, :oauth_read])
     get("/search", MastodonAPIController, :search2)
   end
 
@@ -480,9 +483,14 @@ defmodule Pleroma.Web.Router do
       get("/statuses/show/:id", TwitterAPI.Controller, :fetch_status)
       get("/statusnet/conversation/:id", TwitterAPI.Controller, :fetch_conversation)
 
-      get("/search", TwitterAPI.Controller, :search)
       get("/statusnet/tags/timeline/:tag", TwitterAPI.Controller, :public_and_external_timeline)
     end
+
+    scope [] do
+      pipe_through(:oauth_read)
+
+      get("/search", TwitterAPI.Controller, :search)
+    end
   end
 
   scope "/api", Pleroma.Web do
@@ -500,7 +508,7 @@ defmodule Pleroma.Web.Router do
   end
 
   scope "/api", Pleroma.Web, as: :twitter_api_search do
-    pipe_through([:api, :oauth_read_or_public])
+    pipe_through([:api, :oauth_read])
     get("/pleroma/search_user", TwitterAPI.Controller, :search_user)
   end
 
@@ -707,9 +715,15 @@ defmodule Pleroma.Web.Router do
     end
   end
 
+  scope "/", Pleroma.Web.MongooseIM do
+    get("/user_exists", MongooseIMController, :user_exists)
+    get("/check_password", MongooseIMController, :check_password)
+  end
+
   scope "/", Fallback do
     get("/registration/:token", RedirectController, :registration_page)
     get("/:maybe_nickname_or_id", RedirectController, :redirector_with_meta)
+    get("/api*path", RedirectController, :api_not_implemented)
     get("/*path", RedirectController, :redirector)
 
     options("/*path", RedirectController, :empty)
@@ -721,6 +735,12 @@ defmodule Fallback.RedirectController do
   alias Pleroma.User
   alias Pleroma.Web.Metadata
 
+  def api_not_implemented(conn, _params) do
+    conn
+    |> put_status(404)
+    |> json(%{error: "Not implemented"})
+  end
+
   def redirector(conn, _params, code \\ 200) do
     conn
     |> put_resp_content_type("text/html")