Get Revisions



Get all revisions

Use get_for to retrieve all of the revisions currently kept for the specified document.

  • Example:
    # Get revisions for document 'orders/1-A'
    # Revisions will be ordered by most recent revision first
    order_revisions = session.advanced.revisions.get_for("orders/1-A", Order, 0, 10)
  • Syntax:

    def get_for(self, id_: str, object_type: Type[_T] = None, start: int = 0, page_size: int = 25) -> List[_T]: ...
    Parameters Type Description
    id_ str Document ID for which to retrieve revisions
    object_type Type[_T] The type of the object whose revisions we want to retrieve
    start int First revision to retrieve, used for paging
    page_size int Number of revisions to retrieve per results page

Get revisions metadata

Use get_metadata_for to retrieve the metadata for all the revisions currently kept for the specified document.

  • Example:
    # Get 'revisions' metadata for document 'orders/1-A'
    order_revisions_metadata = session.advanced.revisions.get_metadata_for("orders/1-A", 0, 10)
    
    # Each item returned is a revision's metadata, as can be verified in the @flags key
    metadata = order_revisions_metadata[0]
    flags_value = metadata[constants.Documents.Metadata.FLAGS]
    
    self.assertIn("Revision", flags_value)
  • Syntax:

    def get_metadata_for(self, id_: str, start: int = 0, page_size: int = 25) -> List["MetadataAsDictionary"]: ...
    Parameters Type Description
    id_ str Document ID for which to retrieve revisions' metadata
    start int First revision to retrieve metadata for, used for paging
    page_size int Number of revisions to retrieve per results page

Get revisions by creation time

Use get_by_before_date to retrieve a revision by its creation time.

  • Example:
    # Get a revision by its creation time
    revision_from_last_year = (
        session.advanced.revisions
        # If no revision was created at the specified time,
        # then the first revision that precedes it will be returned
        .get_by_before_date("orders/1-A", datetime.datetime.utcnow() - datetime.timedelta(days=365))
    )
  • Syntax:

    def get_by_before_date(self, id_: str, before_date: datetime.datetime, object_type: Type[_T] = None) -> _T: ...
    Parameter Type Description
    id_ str The ID of the document whose revisions we want to retrieve by creation time
    before_date datetime.datetime Revision creation time
    object_type Type[_T] The type of the object whose revisions we want to retrieve

Get revisions by change vector

To retrieve a revision or multiple revisions by change vectors, get the change vector using get_metadata_for and the revisions using get_by_change_vector.

  • Example:
    # Get revisions metadata
    revisions_metadata = session.advanced.revisions.get_metadata_for("orders/1-A", 0, 25)
    
    # Get the change-vector from the metadata
    change_vector = revisions_metadata[0][constants.Documents.Metadata.CHANGE_VECTOR]
    
    # Get the revision by its change-vector
    revision = session.advanced.revisions.get_by_change_vector(change_vector, Order)
  • Syntax:

    # Get a revision by its change vector
    def get_by_change_vector(self, change_vector: str, object_type: Type[_T] = None) -> _T: ...
    
    # Get multiple revisions by their change vectors
    def get_by_change_vectors(self, change_vectors: List[str], object_type: Type[_T] = None) -> Dict[str, _T]: ...
    Parameter Type Description
    change_vectors List[str] A list of change vector strings
    object_type Type[_T] The types of the objects whose revisions we want to retrieve