geonode.base.api.views

Attributes

logger

Classes

UserViewSet

API endpoint that allows users to be viewed or edited.

GroupViewSet

API endpoint that allows gropus to be viewed or edited.

RegionViewSet

API endpoint that lists regions.

HierarchicalKeywordViewSet

API endpoint that lists hierarchical keywords.

ThesaurusKeywordViewSet

API endpoint that lists Thesaurus keywords.

TopicCategoryViewSet

API endpoint that lists categories.

OwnerViewSet

API endpoint that lists all possible owners.

ResourceBaseViewSet

API endpoint that allows base resources to be viewed or edited.

Functions

base_linked_resources(instance, user, params)

Module Contents

geonode.base.api.views.logger[source]
class geonode.base.api.views.UserViewSet[source]

Bases: dynamic_rest.viewsets.DynamicModelViewSet

API endpoint that allows users to be viewed or edited.

authentication_classes[source]
permission_classes[source]
filter_backends[source]
serializer_class[source]
pagination_class[source]
get_queryset()[source]

Filters and sorts users.

resources(request, pk=None)[source]
groups(request, pk=None)[source]
class geonode.base.api.views.GroupViewSet[source]

Bases: dynamic_rest.viewsets.DynamicModelViewSet

API endpoint that allows gropus to be viewed or edited.

authentication_classes[source]
permission_classes[source]
filter_backends[source]
serializer_class[source]
pagination_class[source]
get_queryset()[source]

Filters the public groups and private ones the current user is member of.

members(request, pk=None)[source]
managers(request, pk=None)[source]
resources(request, pk=None)[source]
class geonode.base.api.views.RegionViewSet[source]

Bases: dynamic_rest.viewsets.WithDynamicViewSetMixin, rest_framework.mixins.ListModelMixin, rest_framework.mixins.RetrieveModelMixin, rest_framework.viewsets.GenericViewSet

API endpoint that lists regions.

permission_classes[source]
filter_backends[source]
queryset[source]
serializer_class[source]
pagination_class[source]
class geonode.base.api.views.HierarchicalKeywordViewSet[source]

Bases: dynamic_rest.viewsets.WithDynamicViewSetMixin, rest_framework.mixins.ListModelMixin, rest_framework.mixins.RetrieveModelMixin, rest_framework.viewsets.GenericViewSet

API endpoint that lists hierarchical keywords.

get_queryset()[source]
permission_classes[source]
filter_backends[source]
serializer_class[source]
pagination_class[source]
class geonode.base.api.views.ThesaurusKeywordViewSet[source]

Bases: dynamic_rest.viewsets.WithDynamicViewSetMixin, rest_framework.mixins.ListModelMixin, rest_framework.mixins.RetrieveModelMixin, rest_framework.viewsets.GenericViewSet

API endpoint that lists Thesaurus keywords.

permission_classes[source]
filter_backends[source]
queryset[source]
serializer_class[source]
pagination_class[source]
class geonode.base.api.views.TopicCategoryViewSet[source]

Bases: dynamic_rest.viewsets.WithDynamicViewSetMixin, rest_framework.mixins.ListModelMixin, rest_framework.mixins.RetrieveModelMixin, rest_framework.viewsets.GenericViewSet

API endpoint that lists categories.

permission_classes[source]
filter_backends[source]
queryset[source]
serializer_class[source]
pagination_class[source]
class geonode.base.api.views.OwnerViewSet[source]

Bases: dynamic_rest.viewsets.WithDynamicViewSetMixin, rest_framework.mixins.ListModelMixin, rest_framework.mixins.RetrieveModelMixin, rest_framework.viewsets.GenericViewSet

API endpoint that lists all possible owners.

authentication_classes[source]
permission_classes[source]
filter_backends[source]
serializer_class[source]
pagination_class[source]
get_queryset()[source]

Filter users with at least one resource

class geonode.base.api.views.ResourceBaseViewSet[source]

Bases: dynamic_rest.viewsets.DynamicModelViewSet

API endpoint that allows base resources to be viewed or edited.

authentication_classes[source]
permission_classes[source]
filter_backends[source]
queryset[source]
serializer_class[source]
pagination_class[source]
_filtered(request, filter)[source]
approved(request, *args, **kwargs)[source]
published(request, *args, **kwargs)[source]
featured(request, *args, **kwargs)[source]
favorites(request, pk=None, *args, **kwargs)[source]
favorite(request, pk=None, *args, **kwargs)[source]
resource_types(request, *args, **kwargs)[source]
resource_service_permissions(request, pk, *args, **kwargs)[source]

Instructs the Async dispatcher to execute a ‘DELETE’ or ‘UPDATE’ on the permissions of a valid ‘uuid’

- GET input_params: {
    id: "<str: ID>"
}

- DELETE input_params: {
    id: "<str: ID>"
}

- PUT input_params: {
    id: "<str: ID>"
    owner: str = None
    permissions: dict = {}
    created: bool = False
}

- output_params: {
    output: {
        uuid: "<str: UUID>"
    }
}
- output: {
        "status": "ready",
        "execution_id": "<str: execution ID>",
        "status_url": "http://localhost:8000/api/v2/resource-service/execution-status/<str: execution ID>"
    }

Sample Requests:

  • Removes all the permissions (except owner and admin ones) from a Resource:

    curl -v -X DELETE -u admin:admin -H "Content-Type: application/json" http://localhost:8000/api/v2/resources/<id>/permissions
    
  • Changes the owner of a Resource:

    curl -u admin:admin --location --request PUT 'http://localhost:8000/api/v2/resources/<id>/permissions' \
        --header 'Content-Type: application/json' \
        --data-raw '{"groups": [],"organizations": [],"users": [{"id": 1001,"permissions": "owner"}]}'
    
  • Assigns View permissions to some users:

    curl -u admin:admin --location --request PUT 'http://localhost:8000/api/v2/resources/<id>/permissions' \
        --header 'Content-Type: application/json' \
        --data-raw '{"groups": [],"organizations": [],"users": [{"id": 1000,"permissions": "view"}]}'
    
  • Assigns View permissions to anyone:

    curl -u admin:admin --location --request PUT 'http://localhost:8000/api/v2/resources/<id>/permissions' \
        --header 'Content-Type: application/json' \
        --data-raw '{"groups": [],"organizations": [],"users": [{"id": -1,"permissions": "view"}]}'
    
  • Assigns View permissions to anyone and edit permissions to a Group on a Dataset:

    curl -u admin:admin --location --request PUT 'http://localhost:8000/api/v2/resources/<id>/permissions' \
        --header 'Content-Type: application/json' \
        --data-raw '{"groups": [{"id": 1,"permissions": "manage"}],"organizations": [],"users": [{"id": -1,"permissions": "view"}]}'
    
set_thumbnail_from_bbox(request, resource_id, *args, **kwargs)[source]
resource_service_ingest(request, resource_type: str = None, *args, **kwargs)[source]

Instructs the Async dispatcher to execute an ‘INGEST’ operation.

Warning

‘owner’ is mandatory in the defaults field.

  • POST input_params:
    • uuid: “<str: UUID>”

    • files: “<list(str) path>”

    • defaults: “{“owner”:”<str: username>”,<list: str>}”

    • resource_type: “<enum: [‘dataset’, ‘document’, ‘map’, ‘<GeoApp: name>’]>”

  • output_params:
    • output: <int: number of resources deleted / 0 if none>

  • output:

{
    "status": "ready",
    "execution_id": "<str: execution ID>",
    "status_url": "http://localhost:8000/api/v2/resource-service/execution-status/<str: execution ID>"
}

Sample Request:

  1. POST:

curl -v -X POST -u admin:admin -H "Content-Type: application/json" \
    -d 'defaults={"owner":"admin","title":"pippo"}' \
    -d 'files=["/mnt/c/Data/flowers.jpg"]' \
    http://localhost:8000/api/v2/resources/ingest/document

Response:

{
    "status": "ready",
    "execution_id": "90ca670d-df60-44b6-b358-d792c6aecc58",
    "status_url": "http://localhost:8000/api/v2/resource-service/execution-status/90ca670d-df60-44b6-b358-d792c6aecc58"
}
  1. GET:

curl -v -X GET -u admin:admin http://localhost:8000/api/v2/resource-service/execution-status/90ca670d-df60-44b6-b358-d792c6aecc58

Response:

{
    "user": "admin",
    "status": "finished",
    "func_name": "create",
    "created": "2021-07-22T15:32:09.096075Z",
    "finished": "2021-07-22T15:32:26.936683Z",
    "last_updated": "2021-07-22T15:32:09.096129Z",
    "input_params": {
        "uuid": "fa404f64-eb01-11eb-8f91-00155d41f2fb",
        "files": "['/mnt/c/Data/flowers.jpg']",
        "defaults": "{'owner':'admin','title':'pippo'}",
        "resource_type": "dataset"
    },
    "output_params": {
        "output": {
            "uuid": "fa404f64-eb01-11eb-8f91-00155d41f2fb"
        }
    }
}
resource_service_create(request, resource_type: str = None, *args, **kwargs)[source]

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.

  • POST input_params:

Parameters:
  • uuid – <str: UUID>

  • defaults – {“owner”:”<str: username>”,<list: str>}

  • resource_type – <enum: [‘dataset’, ‘document’, ‘map’, ‘<GeoApp: name>’]>

Note

‘owner’ is mandatory

  • output_params:

Parameters:

output – <int: number of resources deleted / 0 if none>

  • output:

{
    "status": "ready",
    "execution_id": "<str: execution ID>",
    "status_url": "http://localhost:8000/api/v2/resource-service/execution-status/<str: execution ID>"
}

Sample Request:

1. curl -v -X POST -u admin:admin -H "Content-Type: application/json" \
    -d 'defaults={"owner":"admin","title":"pippo"}' \
    http://localhost:8000/api/v2/resources/create/dataset

OUTPUT:

{
    "status": "ready",
    "execution_id": "90ca670d-df60-44b6-b358-d792c6aecc58",
    "status_url": "http://localhost:8000/api/v2/resource-service/execution-status/90ca670d-df60-44b6-b358-d792c6aecc58"
}
2. curl -v -X GET -u admin:admin \
    http://localhost:8000/api/v2/resource-service/execution-status/90ca670d-df60-44b6-b358-d792c6aecc58

OUTPUT:

{
    "user": "admin",
    "status": "finished",
    "func_name": "create",
    "created": "2021-07-22T15:32:09.096075Z",
    "finished": "2021-07-22T15:32:26.936683Z",
    "last_updated": "2021-07-22T15:32:09.096129Z",
    "input_params": {
        "uuid": "fa404f64-eb01-11eb-8f91-00155d41f2fb",
        "defaults": "{'owner':'admin','title':'pippo'}",
        "resource_type": "dataset"
    },
    "output_params": {
        "output": {
            "uuid": "fa404f64-eb01-11eb-8f91-00155d41f2fb"
        }
    }
}
resource_service_delete(request, pk, *args, **kwargs)[source]

Instructs the Async dispatcher to execute a ‘DELETE’ operation over a valid ‘uuid’

  • DELETE

-input_params: {
    id: "<str: ID>"
}

- output_params: {
    output: <int: number of resources deleted / 0 if none>
}

- output: {
        "status": "ready",
        "execution_id": "<str: execution ID>",
        "status_url": "http://localhost:8000/api/v2/resource-service/execution-status/<str: execution ID>"
    }

Sample request:

curl -v -X DELETE -u admin:admin http://localhost:8000/api/v2/resources/<id>/delete

OUTPUT:

{
    "status":"ready",
    "execution_id":"7ed0b141-cf85-434f-bbfb-c02447a5221b",
    "status_url":"http://localhost:8000/api/v2/resource-service/execution-status/7ed0b141-cf85-434f-bbfb-c02447a5221b"
}
curl -v -X GET -u admin:admin http://localhost:8000/api/v2/resource-service/execution-status/7ed0b141-cf85-434f-bbfb-c02447a5221b

OUTPUT:

{
    "user":"admin",
    "status":"finished",
    "func_name":"delete",
    "created":"2021-07-19T14:09:59.930619Z",
    "finished":"2021-07-19T14:10:00.054915Z",
    "last_updated":"2021-07-19T14:09:59.930647Z",
    "input_params":{"uuid":"1234"},
    "output_params":{"output":0}
}
resource_service_update(request, pk, *args, **kwargs)[source]

Instructs the Async dispatcher to execute a ‘UPDATE’ operation over a valid ‘uuid’

  • PUT

- input_params: {
     id: "<str: ID>"
     xml_file: str = None
     metadata_uploaded: bool = False
     vals: dict = {}
     regions: list = []
     keywords: list = []
     custom: dict = {}
     notify: bool = True
 }

 - output_params: {
     output: {
         uuid: "<str: UUID>"
     }
 }
  • output:

{
    "status": "ready",
    "execution_id": "<str: execution ID>",
    "status_url": "http://localhost:8000/api/v2/resource-service/execution-status/<str: execution ID>"
}

Sample Request:

curl -v -X PUT -u admin:admin -H "Content-Type: application/json" -d 'vals={"title":"pippo"}' http://localhost:8000/api/v2/resources/<id>/update

OUTPUT:

{
    "status":"ready",
    "execution_id":"08846e84-eae4-11eb-84be-00155d41f2fb",
    "status_url":"http://localhost:8000/api/v2/resource-service/execution-status/08846e84-eae4-11eb-84be-00155d41f2fb"
}
curl -v -X GET -u admin:admin http://localhost:8000/api/v2/resource-service/execution-status/08846e84-eae4-11eb-84be-00155d41f2fb

OUTPUT:

{
    "user": "admin",
    "status": "finished",
    "func_name": "update",
    "created": "2021-07-22T14:42:56.284740Z",
    "finished": "2021-07-22T14:43:01.813971Z",
    "last_updated": "2021-07-22T14:42:56.284797Z",
    "input_params": {
        "uuid": "ee11541c-eaee-11eb-942c-00155d41f2fb",
        "vals": "{'title':'pippo'}",
        "custom": {},
        "notify": true,
        "regions": [],
        "keywords": [],
        "xml_file": null,
        "metadata_uploaded": false
    },
    "output_params": {
        "output": {
            "uuid": "ee11541c-eaee-11eb-942c-00155d41f2fb"
        }
    }
}

Sample Request with more parameters:

curl -v -X PUT -u admin:admin -H "Content-Type: application/json" -d 'vals={"title":"pippo"}' -d 'metadata_uploaded=true' -d 'keywords=["k1", "k2", "k3"]'

http://localhost:8000/api/v2/resources/<id>/update

resource_service_copy(request, pk, *args, **kwargs)[source]

Instructs the Async dispatcher to execute a ‘COPY’ operation over a valid ‘pk’

PUT

input_params: {
    instance: "<str: ID>"
    owner: "<str: username = <current_user>>"
    defaults: dict = {}
}

- output_params: {
    output: {
        uuid: "<str: UUID>"
    }
}

output:

{
    "status": "ready",
    "execution_id": "<str: execution ID>",
    "status_url": "http://localhost:8000/api/v2/resource-service/execution-status/<str: execution ID>"
}

Sample Request:

curl -v -X PUT -u admin:admin -H "Content-Type: application/json" -d 'defaults={"title":"pippo"}' http://localhost:8000/api/v2/resources/<id>/copy

OUTPUT:

{
    "status":"ready",
    "execution_id":"08846e84-eae4-11eb-84be-00155d41f2fb",
    "status_url":"http://localhost:8000/api/v2/resource-service/execution-status/08846e84-eae4-11eb-84be-00155d41f2fb"
}
curl -v -X GET -u admin:admin http://localhost:8000/api/v2/resource-service/execution-status/08846e84-eae4-11eb-84be-00155d41f2fb

OUTPUT:

{
    "user": "admin",
    "status": "finished",
    "func_name": "update",
    "created": "2021-07-22T14:42:56.284740Z",
    "finished": "2021-07-22T14:43:01.813971Z",
    "last_updated": "2021-07-22T14:42:56.284797Z",
    "input_params": {
        "uuid": "ee11541c-eaee-11eb-942c-00155d41f2fb",
        "defaults": "{"title":"pippo"}"
    },
    "output_params": {
        "output": {
            "uuid": "ee11541c-eaee-11eb-942c-00155d41f2fb"
        }
    }
}
ratings(request, pk, *args, **kwargs)[source]
set_thumbnail(request, pk, *args, **kwargs)[source]
extra_metadata(request, pk, *args, **kwargs)[source]
  • PUT

    update specific metadata. The ID of the metadata is required to perform the update

{
    "id": 1,
    "name": "foo_name",
    "slug": "foo_sug",
    "help_text": "object",
    "field_type": "int",
    "value": "object",
    "category": "object"
}
  • DELETE

    Expect a payload with the IDs of the metadata that should be deleted. Payload be like: [4, 3]

  • POST

{
    "name": "foo_name",
    "slug": "foo_sug",
    "help_text": "object",
    "field_type": "int",
    "value": "object",
    "category": "object"
}
_get_request_params(request, encode=False)[source]

The request with the barer token access to the request.data during the token verification so in this case if the request.body cannot not access, we just re-access to the request.data to get the params needed

linked_resources(request, pk, *args, **kwargs)[source]
geonode.base.api.views.base_linked_resources(instance, user, params)[source]