Esempio n. 1
0
class CustomRouter(DefaultRouter):
    routes = [
        # List route.
        Route(url=r'^{prefix}{trailing_slash}$',
              mapping={
                  'get': 'list',
                  'post': 'create'
              },
              name='{basename}-list',
              detail=False,
              initkwargs={'suffix': 'List'}),
        # Dynamically generated list routes. Generated using
        # @action(detail=False) decorator on methods of the viewset.
        DynamicRoute(url=r'^{prefix}/{url_path}{trailing_slash}$',
                     name='{basename}-{url_name}',
                     detail=False,
                     initkwargs={}),
        # Detail route.
        Route(url=r'^{prefix}/{lookup}{trailing_slash}$',
              mapping={
                  'get': 'retrieve',
                  'put': 'partial_update',
                  'post': 'update',
                  'delete': 'destroy'
              },
              name='{basename}-detail',
              detail=True,
              initkwargs={'suffix': 'Instance'}),
        # Dynamically generated detail routes. Generated using
        # @action(detail=True) decorator on methods of the viewset.
        DynamicRoute(url=r'^{prefix}/{lookup}/{url_path}{trailing_slash}$',
                     name='{basename}-{url_name}',
                     detail=True,
                     initkwargs={}),
    ]
Esempio n. 2
0
class CustomReadOnlyRouter(SimpleRouter):
    """
    A router for read-only APIs, which doesn't use trailing slashes.
    """
    routes = [
        Route(url=r'^{prefix}/$',
              mapping={
                  'get': 'list',
                  'post': 'create'
              },
              detail=False,
              name='{basename}-list',
              initkwargs={'suffix': 'List'}),
        DynamicRoute(url=r'^{prefix}/{url_path}/$',
                     name='{basename}-{url_name}',
                     detail=False,
                     initkwargs={}),
        Route(url=r'^{prefix}/{lookup}/$',
              mapping={
                  'get': 'retrieve',
                  'put': 'update',
                  'patch': 'partial_update',
                  'delete': 'destroy'
              },
              name='{basename}-detail',
              detail=True,
              initkwargs={'suffix': 'Detail'}),
        DynamicRoute(url=r'^{prefix}/{url_path}/{lookup}/$',
                     name='{basename}-{url_name}',
                     detail=True,
                     initkwargs={})
    ]
Esempio n. 3
0
class SensorThingsRouter(DefaultRouter):
    """A router that has the lookup field in parentheses."""
    APIRootView = SensorThingsAPI
    routes = [
        Route(url=r'^{prefix}$',
              mapping={
                  'get': 'list',
                  'post': 'create'
              },
              name='{basename}-list',
              detail=False,
              initkwargs={'suffix': 'List'}),
        DynamicRoute(url=r'^{prefix}/{url_path}$',
                     name='{basename}-{url_name}',
                     detail=False,
                     initkwargs={}),
        Route(url=r'^{prefix}\({lookup}\)$',
              mapping={
                  'get': 'retrieve',
                  'put': 'update',
                  'patch': 'partial_update',
                  'delete': 'destroy'
              },
              name='{basename}-detail',
              detail=True,
              initkwargs={'suffix': 'Instance'}),
        DynamicRoute(url=r'^{prefix}\({lookup}\)/{url_path}$',
                     name='{basename}-{url_name}',
                     detail=True,
                     initkwargs={}),
    ]
Esempio n. 4
0
class ListPatchRouter(ExtendedSimpleRouter):
    """A router that allows performing PATCH requests against the `list` endpoint

    This router is used in order to provide API endpoints that respond to PATCH
    requsts against a viewset's `list` endpoint. It is useful for situations where it
    is necessary to perform a batch update of multiple resources. For a use case,
    consider the selection of which remote resources should be harvestable by the local
    GeoNode:

    - User is shown a (paginated) list of resources that are available on the remote
    service
    - User must now choose which of these harvestable resources should be harvested
    - Instead of forcing the user to make multiple PATCH requests to each harvestable
    resource's detail page in order to set the resource's `should_be_harvested`
    property, user can perform a PATCH request to
    `harvesters/{harvester-id}/harvestable-resources` and set multiple resources'
    `should_be_harvested` at the same time

    """

    routes = [
        # List route.
        Route(url=r'^{prefix}{trailing_slash}$',
              mapping={
                  'get': 'list',
                  'post': 'create',
                  'patch': 'update_list',
              },
              name='{basename}-list',
              detail=False,
              initkwargs={'suffix': 'List'}),
        # Dynamically generated list routes. Generated using
        # @action(detail=False) decorator on methods of the viewset.
        DynamicRoute(url=r'^{prefix}/{url_path}{trailing_slash}$',
                     name='{basename}-{url_name}',
                     detail=False,
                     initkwargs={}),
        # Detail route.
        Route(url=r'^{prefix}/{lookup}{trailing_slash}$',
              mapping={
                  'get': 'retrieve',
                  'put': 'update',
                  'patch': 'partial_update',
                  'delete': 'destroy'
              },
              name='{basename}-detail',
              detail=True,
              initkwargs={'suffix': 'Instance'}),
        # Dynamically generated detail routes. Generated using
        # @action(detail=True) decorator on methods of the viewset.
        DynamicRoute(url=r'^{prefix}/{lookup}/{url_path}{trailing_slash}$',
                     name='{basename}-{url_name}',
                     detail=True,
                     initkwargs={}),
    ]
class CustomRouterRetrieveHasNoParam(SimpleRouter):
    routes = [

        # Detail route.
        Route(
            url=r'^/{prefix}$',
            mapping={
                'get': 'retrieve',
                'put': 'update',
                'patch': 'partial_update',
                'delete': 'destroy'
            },
            name='{basename}-detail',
            detail=True,
            initkwargs={'suffix': 'Instance'}
        ),

        Route(
            url=r'^/{prefix}/create$',
            mapping={
                'post': 'create'
            },
            name='{basename}-create',
            detail=False,
            initkwargs={'suffix': 'Create'}
        ),

        Route(
            url=r'^/{prefix}/list$',
            mapping={
                'get': 'list',
            },
            name='{basename}-list',
            detail=False,
            initkwargs={'suffix': 'List'}
        ),

        # Dynamically generated list routes. Generated using
        # @action(detail=False) decorator on methods of the viewset.
        DynamicRoute(
            url=r'^/{prefix}/{url_path}$',
            name='{basename}-{url_name}',
            detail=False,
            initkwargs={}
        ),
        # Dynamically generated detail routes. Generated using
        # @action(detail=True) decorator on methods of the viewset.
        DynamicRoute(
            url=r'^/{prefix}/{lookup}/{url_path}$',
            name='{basename}-{url_name}',
            detail=True,
            initkwargs={}
        ),
    ]
Esempio n. 6
0
class CustomDefaultRouter(DefaultRouter):
    routes = [
        # List route.
        Route(
            url=r'^{prefix}{trailing_slash}$',
            mapping={
                'get': 'list',
                'post': 'create'
            },
            name='{basename}-list',
            initkwargs={'suffix': 'List'}
        ),
        # Dynamically generated list routes.
        # Generated using @list_route decorator
        # on methods of the viewset.
        DynamicRoute(
            url=r'^{prefix}/{methodname}{trailing_slash}$',
            name='{basename}-{methodnamehyphen}',
            initkwargs={}
        ),
        # Detail route.
        Route(
            url=r'^{prefix}/{lookup}{trailing_slash}$',
            mapping={
                'get': 'retrieve',
                'put': 'update',
                'patch': 'partial_update',
                'delete': 'destroy'
            },
            name='{basename}-detail',
            initkwargs={'suffix': 'Instance'}
        ),
        # Dynamically generated detail routes.
        # Generated using @detail_route decorator on methods of the viewset.
        DynamicRoute(
            url=r'^{prefix}/{lookup}/{methodname}{trailing_slash}$',
            name='{basename}-{methodnamehyphen}',
            initkwargs={}
        ),
        Route(
            url=r'^remote/{prefix}{trailing_slash}$',
            mapping={
                'get': 'get_requests',
                'post': 'post_requests',
                'put': 'put_requests',
                'delete': 'delete_requests',
            },
            name='{basename}-request',
            initkwargs={'suffix': 'Request'}
        )
    ]
Esempio n. 7
0
class NoLookupUpdateRouter(SimpleRouter):
    """
    A router no {loopup} for mine Update
    https://www.django-rest-framework.org/api-guide/routers/#defaultrouter
    """
    routes = [
        # List route.
        Route(
            url=r'^{prefix}{trailing_slash}$',
            mapping={
                'get': 'list',
                'post': 'create',
                'put': 'update',
                'patch': 'partial_update',
            },
            name='{basename}-list',
            detail=False,
            initkwargs={'suffix': 'List'}
        ),
        # Dynamically generated list routes. Generated using
        # @action(detail=False) decorator on methods of the viewset.
        DynamicRoute(
            url=r'^{prefix}/{url_path}{trailing_slash}$',
            name='{basename}-{url_name}',
            detail=False,
            initkwargs={}
        ),
        # Detail route.
        Route(
            url=r'^{prefix}/{lookup}{trailing_slash}$',
            mapping={
                'get': 'retrieve',

                'delete': 'destroy'
            },
            name='{basename}-detail',
            detail=True,
            initkwargs={'suffix': 'Instance'}
        ),
        # Dynamically generated detail routes. Generated using
        # @action(detail=True) decorator on methods of the viewset.
        DynamicRoute(
            url=r'^{prefix}/{lookup}/{url_path}{trailing_slash}$',
            name='{basename}-{url_name}',
            detail=True,
            initkwargs={}
        ),
    ]
Esempio n. 8
0
class CustomDefaultRouter(SimpleRouter):
    """
    Default router for APIs that generates routes for GET, POST, PUT and DELETE
    methods.
    """
    routes = [
        # List route.
        Route(url=r'^{prefix}$',
              mapping={
                  'get': 'list',
                  'post': 'create'
              },
              name='{basename}-list',
              detail=False,
              initkwargs={'suffix': 'List'}),
        # Detail route.
        Route(url=r'^{prefix}/{lookup}$',
              mapping={
                  'get': 'retrieve',
                  'put': 'update',
                  'delete': 'destroy'
              },
              name='{basename}-detail',
              detail=True,
              initkwargs={'suffix': 'Instance'}),
        DynamicRoute(url=r'^{prefix}/{lookup}/{url_path}$',
                     name='{basename}-{url_name}',
                     detail=True,
                     initkwargs={}),
    ]
Esempio n. 9
0
class WriteOnlyRouter(SimpleRouter):
    routes = [
        DynamicRoute(url=r'^{prefix}/{url_path}$',
                     name='{basename}-{url_name}',
                     detail=True,
                     initkwargs={}),
    ]
Esempio n. 10
0
class CustomRouter(DefaultRouter):
    routes = [
        Route(url=r'^{prefix}/getAllWithOutPagination$',
              mapping={'get': 'list'},
              name='{basename}-list',
              detail=False,
              initkwargs={'suffix': 'List'}),
        Route(url=r'^{prefix}/getOne/{lookup}$',
              mapping={'get': 'retrieve'},
              name='{basename}-detail',
              detail=True,
              initkwargs={'suffix': 'Detail'}),
        Route(url=r'^{prefix}/create$',
              mapping={'post': 'create'},
              name='{basename}-list',
              detail=False,
              initkwargs={'suffix': 'List'}),
        Route(url=r'^{prefix}/update$',
              mapping={'post': 'update'},
              name='{basename}-detail',
              detail=True,
              initkwargs={'suffix': 'Detail'}),
        Route(url=r'^{prefix}/delete/{lookup}$',
              mapping={'get': 'destroy'},
              name='{basename}-detail',
              detail=True,
              initkwargs={'suffix': 'Detail'}),
        DynamicRoute(url=r'^{prefix}/{url_path}/{lookup}$',
                     name='{basename}-{url_name}',
                     detail=False,
                     initkwargs={}),
    ]
Esempio n. 11
0
class JobRouter(SimpleRouter):
    '''
    A dedicated router for UWS services. The main difference is that a POST on an instance
    maps to update, not PUT. Also actions are removed.
    '''

    routes = [
        Route(url=r'^{prefix}$',
              mapping={
                  'get': 'list',
                  'post': 'create'
              },
              name='{basename}-list',
              detail=False,
              initkwargs={'suffix': 'List'}),
        Route(url=r'^{prefix}/{lookup}$',
              mapping={
                  'get': 'retrieve',
                  'post': 'update',
                  'delete': 'destroy'
              },
              name='{basename}-detail',
              detail=True,
              initkwargs={'suffix': 'Instance'}),
        DynamicRoute(url=r'^{prefix}/{lookup}/{url_path}$',
                     name='{basename}-{url_name}',
                     detail=True,
                     initkwargs={})
    ]
Esempio n. 12
0
class SidekickRouter(NestedDefaultRouter):
    """Route list URL to detail views"""

    routes = [
        # List route.
        Route(
            url=r"^{prefix}{trailing_slash}$",
            mapping={
                "get": "retrieve",
                "put": "update",
                "patch": "partial_update",
                "post": "create",
                "delete": "destroy",
            },
            name="{basename}-detail",
            detail=True,
            initkwargs={"suffix": "Instance"},
        ),
        # Dynamically generated list routes. Generated using
        # @action(detail=False) decorator on methods of the viewset.
        DynamicRoute(
            url=r"^{prefix}/{url_path}{trailing_slash}$",
            name="{basename}-{url_name}",
            detail=True,
            initkwargs={},
        ),
    ]
Esempio n. 13
0
class MisagoApiRouter(DefaultRouter):
    include_root_view = False
    include_format_suffixes = False

    routes = [
        # List route.
        Route(
            url=r"^{prefix}{trailing_slash}$",
            mapping={
                "get": "list",
                "post": "create"
            },
            name="{basename}-list",
            initkwargs={"suffix": "List"},
            detail=False,
        ),
        # Dynamically generated list routes.
        # Generated using @list_route decorator
        # on methods of the viewset.
        DynamicRoute(
            url=r"^{prefix}/{url_path}{trailing_slash}$",
            name="{basename}-{url_name}",
            initkwargs={},
            detail=False,
        ),
        # Detail route.
        Route(
            url=r"^{prefix}/{lookup}{trailing_slash}$",
            mapping={
                "get": "retrieve",
                "put": "update",
                "patch": "partial_update",
                "delete": "destroy",
            },
            name="{basename}-detail",
            initkwargs={"suffix": "Instance"},
            detail=True,
        ),
        # Dynamically generated detail routes.
        # Generated using @detail_route decorator on methods of the viewset.
        DynamicRoute(
            url=r"^{prefix}/{lookup}/{url_path}{trailing_slash}$",
            name="{basename}-{url_name}",
            initkwargs={},
            detail=True,
        ),
    ]
Esempio n. 14
0
class DefaultRouter(SimpleRouter):
    routes = [
        # List route.
        Route(url=r'^{prefix}{trailing_slash}$',
              mapping={
                  'get': 'list',
                  'post': 'create'
              },
              name='{basename}.list',
              detail=False,
              initkwargs={'suffix': 'List'}),
        # Dynamically generated list routes. Generated using
        # @action(detail=False) decorator on methods of the viewset.
        DynamicRoute(url=r'^{prefix}/{url_path}{trailing_slash}$',
                     name='{basename}.{url_name}',
                     detail=False,
                     initkwargs={}),
        # Detail route.
        Route(url=r'^{prefix}/{lookup}{trailing_slash}$',
              mapping={
                  'get': 'retrieve',
                  'put': 'update',
                  'patch': 'partial_update',
                  'delete': 'destroy'
              },
              name='{basename}.detail',
              detail=True,
              initkwargs={'suffix': 'Instance'}),
        # Dynamically generated detail routes. Generated using
        # @action(detail=True) decorator on methods of the viewset.
        DynamicRoute(url=r'^{prefix}/{lookup}/{url_path}{trailing_slash}$',
                     name='{basename}.{url_name}',
                     detail=True,
                     initkwargs={}),
    ]

    def __init__(self,
                 routes: Optional[List[RouteArg]] = None,
                 trailing_slash=True,
                 *args: List[Any],
                 **kwargs: Dict[str, Any]):
        super().__init__(trailing_slash=trailing_slash, *args, **kwargs)

        if routes:
            route: RouteArg
            for route in routes:
                self.register(*route)
Esempio n. 15
0
class MyOwnRouter(SimpleRouter):
    routes = [
        Route(url=r'^{prefix}{trailing_slash}$',
              mapping={
                  'get': 'list',
                  'post': 'create'
              },
              name='{basename}-list',
              detail=False,
              initkwargs={'suffix': 'List'}),
        Route(url=r'^{prefix}/(?P<ordering>[lp]){trailing_slash}$',
              mapping={
                  'get': 'get_n',
                  'post': 'create'
              },
              name='{basename}-list',
              detail=False,
              initkwargs={'suffix': 'List'}),
        Route(
            url=
            r'^{prefix}/(?P<ordering>[lp])/(?P<start>[0-9]+)/(?P<end>[0-9]+){trailing_slash}$',
            mapping={
                'get': 'get_n',
                'post': 'create'
            },
            name='{basename}-list',
            detail=False,
            initkwargs={'suffix': 'List'}),
        DynamicRoute(url=r'^{prefix}/{url_path}{trailing_slash}$',
                     name='{basename}-{url_name}',
                     detail=False,
                     initkwargs={}),
        Route(url=r'^{prefix}/{lookup}{trailing_slash}$',
              mapping={
                  'get': 'retrieve',
                  'put': 'update',
                  'patch': 'partial_update',
                  'delete': 'destroy'
              },
              name='{basename}-detail',
              detail=True,
              initkwargs={'suffix': 'Instance'}),
        DynamicRoute(url=r'^{prefix}/{lookup}/{url_path}{trailing_slash}$',
                     name='{basename}-{url_name}',
                     detail=True,
                     initkwargs={}),
    ]
Esempio n. 16
0
class SimpleRouter(BaseRouter):
    """
    Custom Router that maps viewset methods to its methodnamehyphen variant.

    For example:
        Method do_some_stuff will be translated to url resource/do-some-stuff
    """
    routes = [
        # List route.
        Route(url=r'^{prefix}{trailing_slash}$',
              mapping={
                  'get': 'list',
                  'post': 'create'
              },
              detail=False,
              name='{basename}-list',
              initkwargs={'suffix': 'List'}),
        # Dynamically generated list routes.
        # Generated using @action decorator
        # on methods of the viewset with param
        # detail=False.
        DynamicRoute(url=r'^{prefix}/{url_path}$',
                     name='{basename}-{url_name}',
                     detail=False,
                     initkwargs={}),
        # Detail route.
        Route(url=r'^{prefix}/{lookup}{trailing_slash}$',
              mapping={
                  'get': 'retrieve',
                  'put': 'update',
                  'patch': 'partial_update',
                  'delete': 'destroy'
              },
              detail=True,
              name='{basename}-detail',
              initkwargs={'suffix': 'Instance'}),
        # Dynamically generated detail routes.
        # Generated using @action decorator
        # on methods of the viewset with param
        # detail=True.
        DynamicRoute(url=r'^{prefix}/{lookup}/{url_path}$',
                     name='{basename}-{url_name}',
                     detail=True,
                     initkwargs={}),
    ]
Esempio n. 17
0
class BaseBoneSimpleRouter(SimpleRouter):

    routes = [
        # List route.
        Route(
            url=r"^{prefix}{trailing_slash}$",
            mapping={
                "get": "list",
                "post": "create"
            },
            name="{basename}-list",
            detail=False,
            initkwargs={"suffix": "List"},
        ),
        # Dynamically generated list routes. Generated using
        # @action(detail=False) decorator on methods of the viewset.
        DynamicRoute(
            url=r"^{prefix}/{url_path}{trailing_slash}$",
            name="{basename}-{url_name}",
            detail=False,
            initkwargs={},
        ),
        # Detail route.
        Route(
            url=r"^{prefix}/{lookup}{trailing_slash}$",
            mapping={
                "post": "retrieve",
                "put": "update",
                "patch": "partial_update",
                "delete": "destroy",
            },
            name="{basename}-detail",
            detail=True,
            initkwargs={"suffix": "Instance"},
        ),
        # Dynamically generated detail routes. Generated using
        # @action(detail=True) decorator on methods of the viewset.
        DynamicRoute(
            url=r"^{prefix}/{lookup}/{url_path}{trailing_slash}$",
            name="{basename}-{url_name}",
            detail=True,
            initkwargs={},
        ),
    ]
Esempio n. 18
0
class SocialRouter(SimpleRouter):
    # Views for creating and retrieving social content: comments, votes/likes
    routes = [
        DynamicRoute(
            url=r"^{prefix}/{lookup}/{url_path}{trailing_slash}$",
            name="{basename}-{url_name}",
            detail=False,
            initkwargs={},
        )
    ]
Esempio n. 19
0
class CustomReadOnlyRouter(SimpleRouter):
    """
    A router for read-only APIs, which doesn't use trailing slashes.
    """
    routes = [
        DynamicRoute(url=r'^{url_path}$',
                     name='{url_name}',
                     detail=True,
                     initkwargs={})
    ]
Esempio n. 20
0
class PathRouter(SimpleRouter):
    """
    A router for read-only APIs, which doesn't use trailing slashes.
    """
    routes = [
        DynamicRoute(url=r'^{prefix}/{url_path}/{lookup}\.csv$',
                     name='{basename}-{url_name}',
                     detail=True,
                     initkwargs={})
    ]
Esempio n. 21
0
class TusAPIRouter(SimpleRouter):
    routes = [
        # List route.
        get_list_route(),
        # Dynamically generated list routes.
        # Generated using @list_route decorator
        # on methods of the viewset.
        DynamicRoute(url=r'^{prefix}/{methodname}{trailing_slash}$',
                     name='{basename}-{methodnamehyphen}',
                     detail=False,
                     initkwargs={}),
        # Detail route.
        get_detail_route(),
        # Dynamically generated detail routes.
        # Generated using @detail_route decorator on methods of the viewset.
        DynamicRoute(url=r'^{prefix}/{lookup}/{methodname}{trailing_slash}$',
                     name='{basename}-{methodnamehyphen}',
                     detail=True,
                     initkwargs={}),
    ]
Esempio n. 22
0
class MinorRouter(DefaultRouter):
    """The DefaultRouter replaced patch method with post."""
    routes = [
        # List route.
        Route(url=r'^{prefix}{trailing_slash}$',
              mapping={
                  'get': 'list',
                  'post': 'create'
              },
              name='{basename}-list',
              detail=False,
              initkwargs={'suffix': 'List'}),
        # Dynamically generated list routes. Generated using
        # @action(detail=False) decorator on methods of the viewset.
        DynamicRoute(url=r'^{prefix}/{url_path}{trailing_slash}$',
                     name='{basename}-{url_name}',
                     detail=False,
                     initkwargs={}),
        # Detail route.
        Route(
            url=r'^{prefix}/{lookup}{trailing_slash}$',
            mapping={
                'get': 'retrieve',
                # 'patch': 'update',  # seems that we don't need this..
                'put': 'partial_update',
                'delete': 'destroy'
            },
            name='{basename}-detail',
            detail=True,
            initkwargs={'suffix': 'Instance'}),
        # Dynamically generated detail routes. Generated using
        # @action(detail=True) decorator on methods of the viewset.
        DynamicRoute(url=r'^{prefix}/{lookup}/{url_path}{trailing_slash}$',
                     name='{basename}-{url_name}',
                     detail=True,
                     initkwargs={}),
    ]

    def __init__(self, *args, **kwargs):
        trailing_slash = kwargs.pop('trailing_slash', False)
        super().__init__(trailing_slash=trailing_slash, *args, **kwargs)
Esempio n. 23
0
class SimpleRouter(DRFSimpleRouter):
    routes = [
        # List route.  /资源s/
        Route(
            url=r'^{prefix}{trailing_slash}$',
            mapping={
                'get': 'list',  # 群查
                'post': 'create',  # 单增、群增
                'put': 'multiple_update',  # 群整改
                'patch': 'multiple_partial_update',  # 群局改
                'delete': 'multiple_destroy',  # 群删
            },
            name='{basename}-list',
            detail=False,
            initkwargs={'suffix': 'List'}),
        # Dynamically generated list routes. Generated using
        # @action(detail=False) decorator on methods of the viewset.
        DynamicRoute(url=r'^{prefix}/{url_path}{trailing_slash}$',
                     name='{basename}-{url_name}',
                     detail=False,
                     initkwargs={}),
        # Detail route.  /资源s/(pk)/
        Route(
            url=r'^{prefix}/{lookup}{trailing_slash}$',
            mapping={
                'get': 'retrieve',  # 单查
                'put': 'update',  # 单整改
                'patch': 'partial_update',  # 单局改
                'delete': 'destroy'  # 单删
            },
            name='{basename}-detail',
            detail=True,
            initkwargs={'suffix': 'Instance'}),
        # Dynamically generated detail routes. Generated using
        # @action(detail=True) decorator on methods of the viewset.
        DynamicRoute(url=r'^{prefix}/{lookup}/{url_path}{trailing_slash}$',
                     name='{basename}-{url_name}',
                     detail=True,
                     initkwargs={}),
    ]
Esempio n. 24
0
class DetailListPostRouter(SimpleRouter):
    '''
    自定义路由器,增加detail POST 方法url,detail GET方法和GET方法同为list
    '''
    routes = [
        # List route.
        Route(url=r'^{prefix}{trailing_slash}$',
              mapping={
                  'get': 'list',
                  'post': 'create'
              },
              name='{basename}-list',
              detail=False,
              initkwargs={'suffix': 'List'}),
        # Dynamically generated list routes. Generated using
        # @action(detail=False) decorator on methods of the viewset.
        DynamicRoute(url=r'^{prefix}/{url_path}{trailing_slash}$',
                     name='{basename}-{url_name}',
                     detail=False,
                     initkwargs={}),
        # Detail route.
        Route(url=r'^{prefix}/{lookup}{trailing_slash}$',
              mapping={
                  'get': 'list_detail',
                  'post': 'create_detail',
                  'put': 'update',
                  'patch': 'partial_update',
                  'delete': 'destroy'
              },
              name='{basename}-detail',
              detail=True,
              initkwargs={'suffix': 'Instance'}),
        # Dynamically generated detail routes. Generated using
        # @action(detail=True) decorator on methods of the viewset.
        DynamicRoute(url=r'^{prefix}/{lookup}/{url_path}{trailing_slash}$',
                     name='{basename}-{url_name}',
                     detail=True,
                     initkwargs={}),
    ]
Esempio n. 25
0
class DefaultRouter(routers.DefaultRouter):
    routes = [
        # List route.
        Route(
            url=r'^{prefix}{trailing_slash}$',
            mapping={
                'get': 'list',
                'post': 'create',
                # Allow PUT as create
                'put': 'create_or_update',
            },
            name='{basename}-list',
            detail=False,
            initkwargs={'suffix': 'List'}),
        # Dynamically generated list routes.
        # Generated using @list_route decorator
        # on methods of the viewset.
        DynamicRoute(url=r'^{prefix}/{lookup}{trailing_slash}$',
                     name='{basename}-list',
                     detail=False,
                     initkwargs={}),
        # Detail route.
        Route(url=r'^{prefix}/{lookup}{trailing_slash}$',
              mapping={
                  'get': 'retrieve',
                  'put': 'update',
                  'patch': 'partial_update',
                  'delete': 'destroy'
              },
              name='{basename}-detail',
              detail=True,
              initkwargs={'suffix': 'Instance'}),
        # Dynamically generated detail routes.
        # Generated using @detail_route decorator on methods of the viewset.
        DynamicRoute(url=r'^{prefix}/{lookup}{trailing_slash}$',
                     name='{basename}-detail',
                     detail=True,
                     initkwargs={}),
    ]
Esempio n. 26
0
class OGCRouter(DefaultRouter):
    """
    A WFS3 compliant router for read-only APIs, which doesn't use trailing slashes.
    """
    routes = [
        Route(url=r'^{prefix}{trailing_slash}$',
              mapping={
                  'get': 'list',
                  'post': 'create'
              },
              name='{basename}-list',
              detail=False,
              initkwargs={'suffix': 'List'}),
        # Dynamically generated list routes. Generated using
        # @action(detail=False) decorator on methods of the viewset.
        DynamicRoute(url=r'^{prefix}/{url_path}{trailing_slash}$',
                     name='{basename}-{url_name}',
                     detail=False,
                     initkwargs={}),
        # Detail route.
        Route(url=r'^{prefix}/items/{lookup}{trailing_slash}$',
              mapping={
                  'get': 'retrieve',
                  'put': 'update',
                  'patch': 'partial_update',
                  'delete': 'destroy'
              },
              name='{basename}-detail',
              detail=True,
              initkwargs={'suffix': 'Instance'}),
        # Dynamically generated detail routes. Generated using
        # @action(detail=True) decorator on methods of the viewset.
        DynamicRoute(
            url=r'^{prefix}/items/{lookup}/{url_path}{trailing_slash}$',
            name='{basename}-{url_name}',
            detail=True,
            initkwargs={}),
    ]
Esempio n. 27
0
class AuthRouter(DefaultRouter):
    routes = [
        # Dynamically generated detail routes. Generated using
        # @action(detail=True) decorator on methods of the viewset.
        Route(url=r'^{prefix}{trailing_slash}$',
              mapping={},
              name='',
              detail=False,
              initkwargs={}),
        DynamicRoute(url=r'^{url_path}{trailing_slash}$',
                     name='{basename}-{url_name}',
                     detail=True,
                     initkwargs={})
    ]
Esempio n. 28
0
class UserRouter(SimpleRouter):
    """
    A router for user api routes
    """
    routes = [
        Route(url=r'^{prefix}$',
              mapping={'get': 'retrieve'},
              name='{basename}-detail',
              detail=False,
              initkwargs={'suffix': 'Detail'}),
        DynamicRoute(url=r'^{prefix}/{url_path}$',
                     name='{basename}-{url_name}',
                     detail=False,
                     initkwargs={})
    ]
Esempio n. 29
0
class MultiFactorVerifierRouter(SimpleRouter):
    """
    Custom router for the MultiFactorViewSet.

    This router isn't really necessary such as the documentation
    already stated:

    'Implementing a custom router isn't something you'd need to
    do very often ...'

    But it looks much cleaner and is use full for subclassing the view.

    see:
    https://www.django-rest-framework.org/api-guide/routers/#custom-routers
    """

    routes = [
        # General routes
        Route(url=r"^{prefix}{trailing_slash}$",
              mapping={
                  "get": "overview",
              },
              name="{basename}-overview",
              detail=False,
              initkwargs={"suffix": "List"}),
        Route(url=r"^{prefix}/{lookup}{trailing_slash}$",
              mapping={
                  "get": "retrieve",
                  "post": "verify",
              },
              name="{basename}-specific",
              detail=True,
              initkwargs={"suffix": "Instance"}),
        Route(url=r"^{prefix}/{lookup}/dispatch{trailing_slash}$",
              mapping={
                  "post": "dispatch_challenge",
              },
              name="{basename}-dispatch",
              detail=True,
              initkwargs={"suffix": "Instance"}),

        # Dynamically generated detail routes. Generated using
        # @action(detail=True) decorator on methods of the viewset.
        DynamicRoute(url=r"^{prefix}/{lookup}/{url_path}{trailing_slash}$",
                     name="{basename}-{url_name}",
                     detail=True,
                     initkwargs={}),
    ]
Esempio n. 30
0
class DefaultRouter(SimpleRouter):
    routes = [
        Route(url=r'^{prefix}$',
              mapping={'get': 'list'},
              name='{basename}-list',
              detail=False,
              initkwargs={'suffix': 'List'}),
        Route(url=r'^{prefix}/{lookup}$',
              mapping={'get': 'retrieve'},
              name='{basename}-detail',
              detail=True,
              initkwargs={'suffix': 'Detail'}),
        DynamicRoute(url=r'^{prefix}/{lookup}/{url_path}$',
                     name='{basename}-{url_name}',
                     detail=True,
                     initkwargs={})
    ]