Source code for contentful_management.asset

from .resource import FieldsResource, PublishResource, ArchiveResource, EnvironmentAwareResource, MetadataResource


"""
contentful_management.asset
~~~~~~~~~~~~~~~~~~~~~~~~~~~

This module implements the Asset class.

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

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


[docs]class Asset(MetadataResource, FieldsResource, PublishResource, ArchiveResource, EnvironmentAwareResource): """ API reference: https://www.contentful.com/developers/docs/references/content-management-api/#/reference/assets """
[docs] def url(self, **kwargs): """ Returns a formatted URL for the asset's File with serialized parameters. Usage: >>> my_asset.url() "//images.contentful.com/spaces/foobar/..." >>> my_asset.url(w=120, h=160) "//images.contentful.com/spaces/foobar/...?w=120&h=160" """ url = self.fields(self._locale()).get('file', {}).get('url', '') args = ['{0}={1}'.format(k, v) for k, v in kwargs.items()] if args: url += '?{0}'.format('&'.join(args)) return url
[docs] def process(self): """ Calls the process endpoint for all locales of the asset. API reference: https://www.contentful.com/developers/docs/references/content-management-api/#/reference/assets/asset-processing """ for locale in self._fields.keys(): self._client._put( "{0}/files/{1}/process".format( self.__class__.base_url( self.space.id, self.id, environment_id=self._environment_id ), locale ), {}, headers=self._update_headers() ) return self.reload()
def __repr__(self): return "<Asset id='{0}' url='{1}'>".format( self.sys.get('id', ''), self.url() )