Source code for contentful_management.taxonomy_concepts_proxy
from .client_proxy import ClientProxy
from .taxonomy_concept import TaxonomyConcept
[docs]class TaxonomyConceptsProxy(ClientProxy):
"""
API reference: https://www.contentful.com/developers/docs/references/content-management-api/#/reference/taxonomy/concept
"""
@property
def _resource_class(self):
return TaxonomyConcept
def __init__(self, client, organization_id):
super(TaxonomyConceptsProxy, self).__init__(client, None)
self.organization_id = organization_id
[docs] def find(self, concept_id, **kwargs):
"""
Finds a taxonomy concept.
"""
return super(TaxonomyConceptsProxy, self).find(concept_id, **kwargs)
[docs] def all(self, query=None, **kwargs):
"""
Gets all taxonomy concepts.
"""
return super(TaxonomyConceptsProxy, self).all(query=query)
[docs] def create(self, attributes=None, **kwargs):
"""
Creates a taxonomy concept.
"""
return super(TaxonomyConceptsProxy, self).create(
resource_id=None,
attributes=attributes
)
[docs] def update(self, concept_id, version, attributes):
"""
Updates a taxonomy concept.
"""
return self.client._patch(
self._url(resource_id=concept_id),
attributes,
headers={
'X-Contentful-Version': str(version),
'Content-Type': 'application/json-patch+json'
}
)
[docs] def delete(self, concept_id, version):
"""
Deletes a taxonomy concept.
"""
return self.client._delete(
self._url(resource_id=concept_id),
headers={'X-Contentful-Version': str(version)}
)
def _url(self, resource_id=None, **kwargs):
if resource_id is None:
return f"organizations/{self.organization_id}/taxonomy/concepts"
return f"organizations/{self.organization_id}/taxonomy/concepts/{resource_id}"
[docs] def descendants(self, concept_id, query=None, **kwargs):
"""
Gets descendants of a taxonomy concept.
"""
if query is None:
query = {}
url = f"organizations/{self.organization_id}/taxonomy/concepts/{concept_id}/descendants"
return self.client._get(url, query, **kwargs)
[docs] def ancestors(self, concept_id, query=None, **kwargs):
"""
Gets ancestors of a taxonomy concept.
"""
if query is None:
query = {}
url = f"organizations/{self.organization_id}/taxonomy/concepts/{concept_id}/ancestors"
return self.client._get(url, query, **kwargs)
[docs] def total(self, **kwargs):
"""
Gets the total number of taxonomy concepts.
"""
url = f"organizations/{self.organization_id}/taxonomy/concepts/total"
response = self.client._http_get(url, {}, **kwargs)
return response.json()
def __repr__(self):
return f"<TaxonomyConceptsProxy organization_id='{self.organization_id}'>"