Source code for contentful_management.snapshot

from .resource import Resource, EnvironmentAwareResource


"""
contentful_management.snapshot
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

This module implements the Snapshot class.

API reference: https://www.contentful.com/developers/docs/references/content-management-api/#/reference/snapshots

:copyright: (c) 2018 by Contentful GmbH.
:license: MIT, see LICENSE for more details.
"""


[docs]class Snapshot(Resource, EnvironmentAwareResource): """ API reference: https://www.contentful.com/developers/docs/references/content-management-api/#/reference/snapshots """ def __init__(self, item, **kwargs): super(Snapshot, self).__init__(item, **kwargs) from .entry import Entry from .content_type import ContentType entity_type = { 'Entry': Entry, 'ContentType': ContentType } if self.sys['snapshot_entity_type'] not in entity_type: raise Exception("Object '{0}' not buildable".format(self.sys['snapshot_entity_type'])) self.snapshot = entity_type[self.sys['snapshot_entity_type']](item['snapshot'], **kwargs)
[docs] @classmethod def base_url(klass, space_id, parent_resource_id, resource_url='entries', resource_id=None, environment_id=None): """ Returns the URI for the snapshot. """ return "spaces/{0}{1}/{2}/{3}/snapshots/{4}".format( space_id, '/environments/{0}'.format(environment_id) if environment_id is not None else '', resource_url, parent_resource_id, resource_id if resource_id is not None else '' )
[docs] def to_json(self): """ Returns the JSON representation of the snapshot. """ result = super(Snapshot, self).to_json() result.update({ 'snapshot': self.snapshot.to_json(), }) return result
def __repr__(self): return "<Snapshot[{0}] id='{1}'>".format( self.sys.get('snapshot_entity_type', ''), self.sys.get('id', '') )
[docs] def save(self): """ Not supported. """ raise Exception("Not Supported")
[docs] def update(self, _attributes=None): """ Not supported. """ raise Exception("Not Supported")