Merge branch 'feat/rich-media-head' into 'develop'
[akkoma] / lib / pleroma / web / api_spec.ex
index 22f76d4bfff013529d948e3c2f0c12943efcc38b..79fd5f8716b0a15b76e03c5667b439ed85be69f0 100644 (file)
@@ -4,6 +4,7 @@
 
 defmodule Pleroma.Web.ApiSpec do
   alias OpenApiSpex.OpenApi
+  alias OpenApiSpex.Operation
   alias Pleroma.Web.Endpoint
   alias Pleroma.Web.Router
 
@@ -22,7 +23,33 @@ defmodule Pleroma.Web.ApiSpec do
         version: Application.spec(:pleroma, :vsn) |> to_string()
       },
       # populate the paths from a phoenix router
-      paths: OpenApiSpex.Paths.from_router(Router)
+      paths: OpenApiSpex.Paths.from_router(Router),
+      components: %OpenApiSpex.Components{
+        parameters: %{
+          "accountIdOrNickname" =>
+            Operation.parameter(:id, :path, :string, "Account ID or nickname",
+              example: "123",
+              required: true
+            )
+        },
+        securitySchemes: %{
+          "oAuth" => %OpenApiSpex.SecurityScheme{
+            type: "oauth2",
+            flows: %OpenApiSpex.OAuthFlows{
+              password: %OpenApiSpex.OAuthFlow{
+                authorizationUrl: "/oauth/authorize",
+                tokenUrl: "/oauth/token",
+                scopes: %{
+                  "read" => "read",
+                  "write" => "write",
+                  "follow" => "follow",
+                  "push" => "push"
+                }
+              }
+            }
+          }
+        }
+      }
     }
     # discover request/response schemas from path specs
     |> OpenApiSpex.resolve_schema_modules()