from django.urls import path, include from django.conf import settings from django.contrib.auth.views import logout_then_login from rest_framework.routers import DefaultRouter, APIRootView from rest_framework_jwt.views import obtain_jwt_token, refresh_jwt_token, verify_jwt_token from . import views router = DefaultRouter() router.APIRootView = APIRootView router.register('users', views.UserViewSet, basename='user') app_name = 'main' urlpatterns = [ path('api/', include(router.urls)), path('api/register/uuid/', views.RegisterUUIDView.as_view()), path('api/register/user/', views.RegisterUserView.as_view()), path('api/auth/refresh/', refresh_jwt_token), path('api/auth/verify/', verify_jwt_token), path('api/auth/uuid/', views.AuthUUIDView.as_view()), path('api/auth/user/', obtain_jwt_token), path('api/user/', views.UserView.as_view()), path('api/user/password/', views.UserPasswordView.as_view()), path('api/password/', views.PasswordResetView.as_view()), path('api/password/email/', views.PasswordResetEmailView.as_view()), path('api/password/digit/', views.PasswordResetDigitView.as_view()), ] if settings.DEBUG: from rest_framework import permissions
from rest_framework.routers import DefaultRouter from . import views router = DefaultRouter() router.APIRootView = views.NextBoxUIPluginRootView router.register(r'savedtopologies', views.SavedTopologyViewSet) app_name = "nextbox_ui_plugin-api" urlpatterns = router.urls
def get_urls(self): from rest_framework.routers import APIRootView, DefaultRouter from EasyAPI.metadata import EasyAPIMetadata router = DefaultRouter() class EasyAPIRootView(APIRootView): metadata_class = EasyAPIMetadata @classmethod def get_view_name(self): return self.name @classmethod def Assemble(cls, **kwargs): class AssembledEasyAPIRootView(cls): name = kwargs["name"] permissions = kwargs["permissions"] return AssembledEasyAPIRootView router.APIRootView = EasyAPIRootView.Assemble( name=self.name, permissions=self.permissions ) router.APIRootView.__doc__ = self.description queries = [] mutations = [] for model, resource in self._registry.items(): resource.filterset.add_subfilters() if self.dump_info or resource.dump_info: resource.__dump_info__() name = model._meta.model_name if self.rest: viewset = resource.generate_viewset() router.register( r"%s" % resource.label, viewset, "%s %s" % (name, resource.label), ) if self.graphql: objectType, query, mutation = resource.generate_graphql() query and queries.append(query) mutation and mutations.append(mutation) if self.graphql: class Query(*queries, graphene.ObjectType): pass class Mutate(*mutations, graphene.ObjectType): pass class PermissionedGraphQL(AccessMixin, GraphQLView): permission_classes = self.permissions raise_exception = True def dispatch(self, request, *args, **kwargs): from rest_framework_simplejwt.authentication import JWTAuthentication if request.META.get('HTTP_AUTHORIZATION', None): try: request.user, request.auth = JWTAuthentication().authenticate(request) except: pass for permission_class in self.permission_classes: permission = permission_class() if not permission.has_permission(request, self): return self.handle_no_permission() return super().dispatch(request, *args, **kwargs) schema = graphene.Schema(query=Query, mutation=mutations and Mutate or None) urlpatterns = router.urls + (self.graphql and [ url( r"^graphql$", csrf_exempt(PermissionedGraphQL.as_view(graphiql=True, schema=schema)), ), ] or []) return urlpatterns
from django.conf.urls import url, include from rest_framework.routers import DefaultRouter from . import views # # Router # router = DefaultRouter() router.root_view_name = 'io-api-root' router.APIRootView = views.IoView router.register(r'questions', views.QuestionIoViewSet) router.register(r'submissions', views.SubmissionIoViewSet) # # Patterns # urlpatterns = [ url(r'^', include(router.urls)), url(r'^questions/(?P<pk>[0-9a-f-]+)/iospec/$', views.question_iospec_view), url(r'^submissions/(?P<pk>[0-9a-f-]+)/feedback/$', views.submission_feedback_view), ]
from django.conf.urls import url, include from rest_framework.routers import DefaultRouter from . import views from mytestproj import settings def get_media_root(): return settings.MEDIA_ROOT routers = DefaultRouter() routers.APIRootView = views.RootView routers.register(r'teststep', views.TeststepViewSet) routers.register(r'testcase', views.TestCaseViewSet) routers.register(r'testsuite', views.TestSuiteViewSet) routers.register(r'testreport', views.TestReportViewSet) routers.register(r'users', views.UserViewSet) urlpatterns = [ url(r'^', include(routers.urls)), url(r'^api-auth/', include('rest_framework.urls', namespace='rest_framework')), ]