Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add args and kwargs in resources API #11459

Merged
merged 2 commits into from
Sep 11, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
34 changes: 17 additions & 17 deletions geonode/base/api/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -378,7 +378,7 @@ def _filtered(self, request, filter):
description="API endpoint allowing to retrieve the approved Resources.",
)
@action(detail=False, methods=["get"])
def approved(self, request):
def approved(self, request, *args, **kwargs):
return self._filtered(request, {"is_approved": True})

@extend_schema(
Expand All @@ -387,7 +387,7 @@ def approved(self, request):
description="API endpoint allowing to retrieve the published Resources.",
)
@action(detail=False, methods=["get"])
def published(self, request):
def published(self, request, *args, **kwargs):
return self._filtered(request, {"is_published": True})

@extend_schema(
Expand All @@ -396,7 +396,7 @@ def published(self, request):
description="API endpoint allowing to retrieve the featured Resources.",
)
@action(detail=False, methods=["get"])
def featured(self, request):
def featured(self, request, *args, **kwargs):
return self._filtered(request, {"featured": True})

@extend_schema(
Expand All @@ -411,7 +411,7 @@ def featured(self, request):
IsAuthenticated,
],
)
def favorites(self, request, pk=None):
def favorites(self, request, pk=None, *args, **kwargs):
paginator = GeoNodeApiPagination()
paginator.page_size = request.GET.get("page_size", 10)
favorites = Favorite.objects.favorites_for_user(user=request.user)
Expand All @@ -425,7 +425,7 @@ def favorites(self, request, pk=None):
description="API endpoint allowing to retrieve the favorite Resources.",
)
@action(detail=True, methods=["post", "delete"], permission_classes=[IsAuthenticated])
def favorite(self, request, pk=None):
def favorite(self, request, pk=None, *args, **kwargs):
resource = self.get_object()
user = request.user

Expand Down Expand Up @@ -476,7 +476,7 @@ def favorite(self, request, pk=None):
""",
)
@action(detail=False, methods=["get"])
def resource_types(self, request):
def resource_types(self, request, *args, **kwargs):
def _to_compact_perms_list(
allowed_perms: dict, resource_type: str, resource_subtype: str, compact_perms_labels: dict = {}
) -> list:
Expand Down Expand Up @@ -583,7 +583,7 @@ def _to_compact_perms_list(
methods=["get", "put", "patch", "delete"],
permission_classes=[IsAuthenticated],
)
def resource_service_permissions(self, request, pk):
def resource_service_permissions(self, request, pk, *args, **kwargs):
"""Instructs the Async dispatcher to execute a 'DELETE' or 'UPDATE' on the permissions of a valid 'uuid'

- GET input_params: {
Expand Down Expand Up @@ -720,7 +720,7 @@ def resource_service_permissions(self, request, pk):
methods=["post"],
permission_classes=[IsAuthenticated, UserHasPerms(perms_dict={"default": {"POST": ["base.add_resourcebase"]}})],
)
def set_thumbnail_from_bbox(self, request, resource_id):
def set_thumbnail_from_bbox(self, request, resource_id, *args, **kwargs):
import traceback
from django.utils.datastructures import MultiValueDictKeyError

Expand Down Expand Up @@ -778,7 +778,7 @@ def set_thumbnail_from_bbox(self, request, resource_id):
methods=["post"],
permission_classes=[IsAuthenticated],
)
def resource_service_ingest(self, request, resource_type: str = None):
def resource_service_ingest(self, request, resource_type: str = None, *args, **kwargs):
"""Instructs the Async dispatcher to execute a 'INGEST' operation

- POST input_params: {
Expand Down Expand Up @@ -879,7 +879,7 @@ def resource_service_ingest(self, request, resource_type: str = None):
methods=["post"],
permission_classes=[IsAuthenticated, UserHasPerms(perms_dict={"default": {"POST": ["base.add_resourcebase"]}})],
)
def resource_service_create(self, request, resource_type: str = None):
def resource_service_create(self, request, resource_type: str = None, *args, **kwargs):
"""Instructs the Async dispatcher to execute a 'CREATE' operation
**WARNING**: This will create an empty dataset; if you need to upload a resource to GeoNode, consider using the endpoint "ingest" instead

Expand Down Expand Up @@ -981,7 +981,7 @@ def resource_service_create(self, request, resource_type: str = None):
methods=["delete"],
permission_classes=[IsAuthenticated, UserHasPerms],
)
def resource_service_delete(self, request, pk):
def resource_service_delete(self, request, pk, *args, **kwargs):
"""Instructs the Async dispatcher to execute a 'DELETE' operation over a valid 'uuid'

- DELETE input_params: {
Expand Down Expand Up @@ -1065,7 +1065,7 @@ def resource_service_delete(self, request, pk):
methods=["put"],
permission_classes=[IsAuthenticated, UserHasPerms],
)
def resource_service_update(self, request, pk):
def resource_service_update(self, request, pk, *args, **kwargs):
"""Instructs the Async dispatcher to execute a 'UPDATE' operation over a valid 'uuid'

- PUT input_params: {
Expand Down Expand Up @@ -1195,7 +1195,7 @@ def resource_service_update(self, request, pk):
),
],
)
def resource_service_copy(self, request, pk):
def resource_service_copy(self, request, pk, *args, **kwargs):
"""Instructs the Async dispatcher to execute a 'COPY' operation over a valid 'pk'

- PUT input_params: {
Expand Down Expand Up @@ -1300,7 +1300,7 @@ def resource_service_copy(self, request, pk):
UserHasPerms(perms_dict={"default": {"POST": ["base.add_resourcebase"]}}),
],
)
def ratings(self, request, pk):
def ratings(self, request, pk, *args, **kwargs):
resource = get_object_or_404(ResourceBase, pk=pk)
resource = resource.get_real_instance()
ct = ContentType.objects.get_for_model(resource)
Expand Down Expand Up @@ -1337,7 +1337,7 @@ def ratings(self, request, pk):
permission_classes=[IsAuthenticated, UserHasPerms],
parser_classes=[JSONParser, MultiPartParser],
)
def set_thumbnail(self, request, pk):
def set_thumbnail(self, request, pk, *args, **kwargs):
resource = get_object_or_404(ResourceBase, pk=pk)

if not request.data.get("file"):
Expand Down Expand Up @@ -1397,7 +1397,7 @@ def set_thumbnail(self, request, pk):
url_path=r"extra_metadata", # noqa
url_name="extra-metadata",
)
def extra_metadata(self, request, pk):
def extra_metadata(self, request, pk, *args, **kwargs):
_obj = get_object_or_404(ResourceBase, pk=pk)

if request.method == "GET":
Expand Down Expand Up @@ -1488,7 +1488,7 @@ def _get_request_params(self, request, encode=False):
url_path=r"linked_resources", # noqa
url_name="linked_resources",
)
def linked_resources(self, request, pk):
def linked_resources(self, request, pk, *args, **kwargs):
try:
"""
To let the API be able to filter the linked result, we cannot rely on the DynamicFilterBackend
Expand Down
2 changes: 1 addition & 1 deletion geonode/documents/api/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -145,7 +145,7 @@ def perform_create(self, serializer):
description="API endpoint allowing to retrieve the DocumentResourceLink(s).",
)
@action(detail=True, methods=["get"])
def linked_resources(self, request, pk=None):
def linked_resources(self, request, pk=None, *args, **kwargs):
document = self.get_object()
resources_id = document.links.all().values("object_id")
resources = ResourceBase.objects.filter(id__in=resources_id)
Expand Down
10 changes: 5 additions & 5 deletions geonode/layers/api/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -100,7 +100,7 @@ def get_serializer_class(self):
UserHasPerms(perms_dict={"default": {"PUT": ["base.change_resourcebase_metadata"]}}),
],
)
def metadata(self, request, pk=None):
def metadata(self, request, pk=None, *args, **kwargs):
"""
Endpoint to upload ISO metadata
Usage Example:
Expand Down Expand Up @@ -165,7 +165,7 @@ def metadata(self, request, pk=None):
description="API endpoint allowing to retrieve the MapLayers list.",
)
@action(detail=True, methods=["get"])
def maplayers(self, request, pk=None):
def maplayers(self, request, pk=None, *args, **kwargs):
dataset = self.get_object()
resources = dataset.maplayers
return Response(SimpleMapLayerSerializer(many=True).to_representation(resources))
Expand All @@ -176,7 +176,7 @@ def maplayers(self, request, pk=None):
description="API endpoint allowing to retrieve maps using the dataset.",
)
@action(detail=True, methods=["get"])
def maps(self, request, pk=None):
def maps(self, request, pk=None, *args, **kwargs):
dataset = self.get_object()
resources = dataset.maps
return Response(SimpleMapSerializer(many=True).to_representation(resources))
Expand Down Expand Up @@ -208,7 +208,7 @@ def maps(self, request, pk=None):
methods=["patch"],
serializer_class=DatasetReplaceAppendSerializer,
)
def replace(self, request, dataset_id=None):
def replace(self, request, dataset_id=None, *args, **kwargs):
"""
Edpoint for replace data to an existing layer
"""
Expand Down Expand Up @@ -241,7 +241,7 @@ def replace(self, request, dataset_id=None):
methods=["patch"],
serializer_class=DatasetReplaceAppendSerializer,
)
def append(self, request, dataset_id=None):
def append(self, request, dataset_id=None, *args, **kwargs):
"""
Edpoint for replace data to an existing layer
"""
Expand Down
4 changes: 2 additions & 2 deletions geonode/maps/api/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,7 @@ def create(self, request, *args, **kwargs):
description="API endpoint allowing to retrieve the MapLayers list.",
)
@action(detail=True, methods=["get"])
def maplayers(self, request, pk=None):
def maplayers(self, request, pk=None, *args, **kwargs):
map = self.get_object()
resources = map.maplayers
return Response(MapLayerSerializer(embed=True, many=True).to_representation(resources))
Expand All @@ -107,7 +107,7 @@ def maplayers(self, request, pk=None):
description="API endpoint allowing to retrieve the local MapLayers.",
)
@action(detail=True, methods=["get"])
def datasets(self, request, pk=None):
def datasets(self, request, pk=None, *args, **kwargs):
map = self.get_object()
resources = map.datasets
return Response(DatasetSerializer(embed=True, many=True).to_representation(resources))
Expand Down
Loading