Skip to content

Commit

Permalink
Add args and kwargs in resources API (#11459)
Browse files Browse the repository at this point in the history
Co-authored-by: Giovanni Allegri <giohappy@gmail.com>
  • Loading branch information
mattiagiupponi and giohappy authored Sep 11, 2023
1 parent cd70285 commit 04837e7
Show file tree
Hide file tree
Showing 4 changed files with 25 additions and 25 deletions.
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

0 comments on commit 04837e7

Please sign in to comment.