Move all the APIs under the same router

This commit is contained in:
Joakim Hellsén 2026-07-21 04:05:35 +02:00
commit c54ceeb7a8
Signed by: Joakim Hellsén
SSH key fingerprint: SHA256:/9h/CsExpFp+PRhsfA0xznFx2CGfTT5R/kpuFfUgEQk
27 changed files with 1289 additions and 351 deletions

19
config/api.py Normal file
View file

@ -0,0 +1,19 @@
"""Combined v1 API router for all platforms."""
from ninja import NinjaAPI
from kick.api import api as kick_router
from twitch.api import api as twitch_router
api_v1 = NinjaAPI(
title="TTVDrops API",
version="1.0.0",
urls_namespace="api-v1",
docs_url="docs/",
)
api_v1.add_router("/twitch/", twitch_router, url_name_prefix="twitch-api-v1")
api_v1.add_router("/kick/", kick_router, url_name_prefix="kick-api-v1")
app_name = "api-v1"
urlpatterns = api_v1.urls[0]

View file

@ -276,7 +276,25 @@ class SiteEndpointSmokeTest(TestCase):
("twitch:export_organizations_csv", {}, 200),
("twitch:export_organizations_json", {}, 200),
# Kick endpoints
("kick:campaign_api_list", {}, 200),
("api-v1:kick-api-v1_list_campaigns", {}, 200),
(
"api-v1:kick-api-v1_get_campaign",
{"kick_id": self.kick_campaign.kick_id},
200,
),
("api-v1:kick-api-v1_list_games", {}, 200),
(
"api-v1:kick-api-v1_get_game",
{"kick_id": self.kick_category.kick_id},
200,
),
("api-v1:kick-api-v1_list_organizations", {}, 200),
(
"api-v1:kick-api-v1_get_organization",
{"kick_id": self.kick_org.kick_id},
200,
),
("api-v1:kick-api-v1_stats", {}, 200),
("kick:dashboard", {}, 200),
("kick:campaign_list", {}, 200),
("kick:campaign_detail", {"kick_id": self.kick_campaign.kick_id}, 200),

View file

@ -43,6 +43,11 @@ urlpatterns: list[URLPattern | URLResolver] = [
view=core_views.sitemap_youtube_view,
name="sitemap-youtube",
),
# API v1
path(
"api/v1/",
include("config.api", namespace="api-v1"),
),
# Core app
path(route="", view=include("core.urls", namespace="core")),
# Twitch app