Only swagger for /api/v1

fix-rate-limit-serializer
Georg Krause 2022-07-16 09:17:12 +02:00
rodzic 098fe7e119
commit 1fa648ecea
Nie znaleziono w bazie danych klucza dla tego podpisu
ID klucza GPG: 2970D504B2183D22
3 zmienionych plików z 12 dodań i 0 usunięć

Wyświetl plik

@ -254,6 +254,7 @@ build_docs:
DJANGO_SETTINGS_MODULE: config.settings.local
POSTGRES_HOST_AUTH_METHOD: trust
CACHE_URL: "redis://redis:6379/0"
API_TYPE: "v1"
before_script:
- cd api
- pip3 install poetry

Wyświetl plik

@ -1,4 +1,5 @@
from drf_spectacular.contrib.django_oauth_toolkit import OpenApiAuthenticationExtension
import os
class CustomOAuthExt(OpenApiAuthenticationExtension):
target_class = "funkwhale_api.common.authentication.OAuth2Authentication"
@ -24,3 +25,12 @@ class CustomOAuthExt(OpenApiAuthenticationExtension):
flows[flow_type]["scopes"] = scope_backend.get_all_scopes()
return {"type": "oauth2", "flows": flows}
def custom_preprocessing_hook(endpoints):
filtered = []
# your modifications to the list of operations that are exposed in the schema
api_type = os.environ['API_TYPE']
for (path, path_regex, method, callback) in endpoints:
if path.startswith(f"/api/{api_type}"):
filtered.append((path, path_regex, method, callback))
return filtered

Wyświetl plik

@ -131,6 +131,7 @@ SPECTACULAR_SETTINGS = {
"OAUTH2_FLOWS": ["authorizationCode"],
"OAUTH2_AUTHORIZATION_URL": "/authorize",
"OAUTH2_TOKEN_URL": "/api/v1/oauth/token/",
'PREPROCESSING_HOOKS': ["config.schema.custom_preprocessing_hook"],
}
if env.bool("WEAK_PASSWORDS", default=False):