""" Representation of a Photo object """ from .trovebox_object import TroveboxObject class Photo(TroveboxObject): """ Representation of a Photo object """ _type = "photo" def delete(self, **kwds): """ Endpoint: /photo//delete.json Deletes this photo. Returns True if successful. Raises a TroveboxError if not. """ result = self._client.photo.delete(self, **kwds) self._delete_fields() return result def delete_source(self, **kwds): """ Endpoint: /photo//source/delete.json Deletes the source files of this photo. Returns True if successful. Raises a TroveboxError if not. """ return self._client.photo.delete_source(self, **kwds) def replace(self, photo_file, **kwds): """ Endpoint: /photo//replace.json Uploads the specified photo file to replace this photo. """ result = self._client.photo.replace(self, photo_file, **kwds) self._replace_fields(result.get_fields()) def replace_encoded(self, photo_file, **kwds): """ Endpoint: /photo//replace.json Base64-encodes and uploads the specified photo file to replace this photo. """ result = self._client.photo.replace_encoded(self, photo_file, **kwds) self._replace_fields(result.get_fields()) def replace_from_url(self, url, **kwds): """ Endpoint: /photo/replace.json Import a photo from the specified URL to replace this photo. """ result = self._client.photo.replace_from_url(self, url, **kwds) self._replace_fields(result.get_fields()) def update(self, **kwds): """ Endpoint: /photo//update.json Updates this photo with the specified parameters. """ result = self._client.photo.update(self, **kwds) self._replace_fields(result.get_fields()) def view(self, options=None, **kwds): """ Endpoint: /photo/[/]/view.json Requests all properties of this photo. Can be used to obtain URLs for the photo at a particular size, by using the "returnSizes" parameter. Updates the photo's fields with the response. The options parameter can be used to pass in additional options. Eg: options={"token": } """ result = self._client.photo.view(self, options, **kwds) self._replace_fields(result.get_fields()) def next_previous(self, options=None, **kwds): """ Endpoint: /photo//nextprevious[/].json Returns a dict containing the next and previous photo lists (there may be more than one next/previous photo returned). """ return self._client.photo.next_previous(self, options, **kwds) def transform(self, **kwds): """ Endpoint: /photo//transform.json Performs the specified transformations. eg. transform(photo, rotate=90) Updates the photo's fields with the response. """ result = self._client.photo.transform(self, **kwds) self._replace_fields(result.get_fields())