Source code for smarter.apps.plugin.api.v1.urls

"""Plugin urls."""

from django.urls import path
from django.views import View

from .const import namespace
from .views import (
    AddPluginExamplesView,
    PluginCloneView,
    PluginListView,
    PluginUploadView,
    PluginView,
)

app_name = namespace


[docs] class RequestRouter(View): """http method-based request router."""
[docs] def dispatch(self, request, *args, **kwargs): if request and isinstance(request.method, str) and request.method.lower() == "post": return PluginView.as_view()(request, *args, **kwargs) return PluginListView.as_view()(request, *args, **kwargs)
urlpatterns = [ path("", RequestRouter.as_view(), name="plugins_list_view"), path( "<int:plugin_id>/", PluginView.as_view(), name="plugin_view", ), path( "<int:plugin_id>/clone/<str:new_name>", PluginCloneView.as_view(), name="plugin_clone_view", ), path( "add-example-plugins/<int:user_id>/", AddPluginExamplesView.as_view(), name="add_plugin_examples", ), path("upload/", PluginUploadView.as_view(), name="plugin_upload"), ]