Newer
Older
__copyright__ = "Copyright © Stichting SciPost (SciPost Foundation)"
__license__ = "AGPL v3"
from django.urls import include, path
from rest_framework import routers
# colleges
from colleges.api.viewsets import FellowshipPublicAPIViewSet
PublicationPublicSearchAPIViewSet,
PubFracPublicAPIViewSet,
from submissions.api.viewsets import (
SubmissionPublicAPIViewSet,
SubmissionPublicSearchAPIViewSet,
)
from finances.api.viewsets import SubsidyFinAdminAPIViewSet, SubsidyPublicAPIViewSet
# Next two: old style, to be deprecated:
from conflicts.viewsets import ConflictOfInterestViewSet
from news.viewsets import NewsItemViewSet
from api.views.omniauth import OmniAuthUserInfoView
import api.views.search as search_views
router = routers.SimpleRouter()
router.register(
"search/publications",
PublicationPublicSearchAPIViewSet,
basename="search_publications",
)
router.register(
"search/submissions",
SubmissionPublicSearchAPIViewSet,
basename="search_submissions",
)
#############################
# publicly-accessible routes
#############################
# colleges
router.register("colleges/fellowships", FellowshipPublicAPIViewSet)
router.register("publications", PublicationPublicAPIViewSet)
router.register("pubfracs", PubFracPublicAPIViewSet)
router.register("submissions", SubmissionPublicAPIViewSet)
router.register("organizations", OrganizationPublicAPIViewSet)
router.register("nap", OrganizationNAPViewSet, basename="organization_nap")
router.register(
"finadmin/subsidies", SubsidyFinAdminAPIViewSet, basename="subsidies_finadmin"
)
router.register("subsidies", SubsidyPublicAPIViewSet)
# Next two: old style, to be deprecated:
router.register(r"news", NewsItemViewSet)
router.register(r"conflicts", ConflictOfInterestViewSet)
urlpatterns = [
path("", views.APIView.as_view(), name="api"),
*router.urls,
path( # /api/omniauth/userinfo/, for SciPost as GitLab/OmniAuth authorization server
"omniauth/userinfo/", OmniAuthUserInfoView.as_view(), name="omniauth_userinfo"
path( # /api/available_search_tabs/
"available_search_tabs/",
search_views.available_search_tabs,
name="available_search_tabs",