Skip to content

Commit

Permalink
Move api router registration to app ready
Browse files Browse the repository at this point in the history
  • Loading branch information
stefanw committed Sep 19, 2024
1 parent d98b101 commit 406ed7a
Show file tree
Hide file tree
Showing 9 changed files with 85 additions and 44 deletions.
4 changes: 4 additions & 0 deletions froide/campaign/apps.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,12 @@ class CampaignConfig(AppConfig):
verbose_name = _("Campaign")

def ready(self):
from froide.api import api_router
from froide.foirequest.models import FoiRequest

from .api_views import CampaignViewSet
from .listeners import connect_campaign

api_router.register(r"campaign", CampaignViewSet, basename="campaign")

FoiRequest.request_sent.connect(connect_campaign)
19 changes: 19 additions & 0 deletions froide/document/apps.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,29 @@ class DocumentConfig(AppConfig):

def ready(self):
import froide.document.signals # noqa
from froide.api import api_router
from froide.helper.search import search_registry

from .api_views import (
DocumentCollectionViewSet,
DocumentViewSet,
PageAnnotationViewSet,
PageViewSet,
)

search_registry.register(add_search)

api_router.register(r"document", DocumentViewSet, basename="document")
api_router.register(
r"documentcollection",
DocumentCollectionViewSet,
basename="documentcollection",
)
api_router.register(r"page", PageViewSet, basename="page")
api_router.register(
r"pageannotation", PageAnnotationViewSet, basename="pageannotation"
)


def add_search(request):
return {
Expand Down
10 changes: 10 additions & 0 deletions froide/foirequest/apps.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,13 @@ def ready(self):
account_merged,
)
from froide.account.export import registry
from froide.api import api_router
from froide.foirequest import signals # noqa
from froide.foirequest.api_views import (
FoiAttachmentViewSet,
FoiMessageViewSet,
FoiRequestViewSet,
)
from froide.helper.search import search_registry
from froide.team import team_changed

Expand All @@ -43,6 +49,10 @@ def ready(self):
team_changed.connect(keep_foiproject_teams_synced_with_requests)
account_confirmed.connect(send_request_when_account_confirmed)

api_router.register(r"request", FoiRequestViewSet, basename="request")
api_router.register(r"message", FoiMessageViewSet, basename="message")
api_router.register(r"attachment", FoiAttachmentViewSet, basename="attachment")


def add_search(request):
return {
Expand Down
6 changes: 6 additions & 0 deletions froide/foirequestfollower/apps.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,11 +8,17 @@ class FoiRequestFollowerConfig(AppConfig):

def ready(self):
import froide.foirequestfollower.listeners # noqa
from froide.api import api_router
from froide.foirequest.models import FoiRequest
from froide.follow.configuration import follow_registry

from .api_views import FoiRequestFollowerViewSet
from .configuration import FoiRequestFollowConfiguration

api_router.register(
r"following", FoiRequestFollowerViewSet, basename="following"
)

FoiRequest.made_private.connect(remove_followers)

follow_registry.register(FoiRequestFollowConfiguration())
Expand Down
13 changes: 13 additions & 0 deletions froide/georegion/apps.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
from django.apps import AppConfig
from django.utils.translation import gettext_lazy as _


class GeoRegionConfig(AppConfig):
name = "froide.georegion"
verbose_name = _("Geo Region")

def ready(self):
from froide.api import api_router
from froide.georegion.api_views import GeoRegionViewSet

api_router.register(r"georegion", GeoRegionViewSet, basename="georegion")
6 changes: 6 additions & 0 deletions froide/problem/apps.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,14 @@ def ready(self):
from froide.account import account_merged
from froide.account.export import registry
from froide.account.menu import MenuItem, menu_registry
from froide.api import api_router

from . import signals # noqa
from .api_views import ProblemReportViewSet

api_router.register(
r"problemreport", ProblemReportViewSet, basename="problemreport"
)

registry.register(export_user_data)
account_merged.connect(merge_user)
Expand Down
20 changes: 20 additions & 0 deletions froide/publicbody/apps.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,26 @@ def ready(self):
account_merged.connect(merge_user)
search_registry.register(add_search)

from froide.api import api_router

from .api_views import (
CategoryViewSet,
ClassificationViewSet,
FoiLawViewSet,
JurisdictionViewSet,
PublicBodyViewSet,
)

api_router.register(r"publicbody", PublicBodyViewSet, basename="publicbody")
api_router.register(r"category", CategoryViewSet, basename="category")
api_router.register(
r"classification", ClassificationViewSet, basename="classification"
)
api_router.register(
r"jurisdiction", JurisdictionViewSet, basename="jurisdiction"
)
api_router.register(r"law", FoiLawViewSet, basename="law")


def add_search(request):
return {
Expand Down
7 changes: 7 additions & 0 deletions froide/upload/apps.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,3 +5,10 @@
class UploadConfig(AppConfig):
name = "froide.upload"
verbose_name = _("Upload")

def ready(self) -> None:
from froide.api import api_router

from .api_views import UploadViewSet

api_router.register(r"upload", UploadViewSet, basename="upload")
44 changes: 0 additions & 44 deletions froide/urls.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,36 +12,13 @@

from froide.account.api_views import ProfileView, UserPreferenceView
from froide.account.views import bad_login_view_redirect
from froide.campaign.api_views import CampaignViewSet
from froide.document.api_views import (
DocumentCollectionViewSet,
DocumentViewSet,
PageAnnotationViewSet,
PageViewSet,
)
from froide.document.urls import document_media_urlpatterns
from froide.foirequest.api_views import (
FoiAttachmentViewSet,
FoiMessageViewSet,
FoiRequestViewSet,
)
from froide.foirequest.views import FoiRequestSitemap, index
from froide.foirequestfollower.api_views import FoiRequestFollowerViewSet
from froide.georegion.api_views import GeoRegionViewSet
from froide.problem.api_views import ProblemReportViewSet
from froide.publicbody.api_views import (
CategoryViewSet,
ClassificationViewSet,
FoiLawViewSet,
JurisdictionViewSet,
PublicBodyViewSet,
)
from froide.publicbody.views import (
FoiLawSitemap,
JurisdictionSitemap,
PublicBodySitemap,
)
from froide.upload.api_views import UploadViewSet

from .api import api_router

Expand All @@ -56,27 +33,6 @@ def handler500(request):
return render(request, "500.html", {"request": request}, status=500)


api_router.register(r"request", FoiRequestViewSet, basename="request")
api_router.register(r"message", FoiMessageViewSet, basename="message")
api_router.register(r"attachment", FoiAttachmentViewSet, basename="attachment")
api_router.register(r"publicbody", PublicBodyViewSet, basename="publicbody")
api_router.register(r"category", CategoryViewSet, basename="category")
api_router.register(r"classification", ClassificationViewSet, basename="classification")
api_router.register(r"jurisdiction", JurisdictionViewSet, basename="jurisdiction")
api_router.register(r"law", FoiLawViewSet, basename="law")
api_router.register(r"georegion", GeoRegionViewSet, basename="georegion")
api_router.register(r"following", FoiRequestFollowerViewSet, basename="following")
api_router.register(r"campaign", CampaignViewSet, basename="campaign")
api_router.register(r"upload", UploadViewSet, basename="upload")
api_router.register(r"problemreport", ProblemReportViewSet, basename="problemreport")
api_router.register(r"document", DocumentViewSet, basename="document")
api_router.register(
r"documentcollection", DocumentCollectionViewSet, basename="documentcollection"
)
api_router.register(r"page", PageViewSet, basename="page")
api_router.register(r"pageannotation", PageAnnotationViewSet, basename="pageannotation")


class StaticViewSitemap(Sitemap):
priority = 1.0
changefreq = "daily"
Expand Down

0 comments on commit 406ed7a

Please sign in to comment.