Source code for swimlane.core.adapters.record_revision
import math
from swimlane.core.resolver import AppResolver
from swimlane.core.resources.record_revision import RecordRevision
[docs]class RecordRevisionAdapter(AppResolver):
"""Handles retrieval of Swimlane Record Revision resources"""
def __init__(self, app, record):
super(RecordRevisionAdapter, self).__init__(app)
self.record = record
[docs] def get_all(self):
"""Get all revisions for a single record.
Returns:
RecordRevision[]: All record revisions for the given record ID.
"""
raw_revisions = self._swimlane.request('get',
'app/{0}/record/{1}/history'.format(self._app.id, self.record.id)).json()
return [RecordRevision(self._app, raw) for raw in raw_revisions]
[docs] def get(self, revision_number):
"""Gets a specific record revision.
Keyword Args:
revision_number (float): Record revision number
Returns:
RecordRevision: The RecordRevision for the given revision number.
Raises: When revision is not an integer, a float NOT ending in ".0", or is less than 1
"""
if isinstance(revision_number, (int, float)):
if revision_number > 0 and revision_number % math.floor(revision_number) == 0:
record_revision_raw = self._swimlane.request('get',
'app/{0}/record/{1}/history/{2}'.format(self._app.id,
self.record.id,
revision_number)).json()
return RecordRevision(self._app, record_revision_raw)
raise ValueError('The revision number must be a positive whole number greater than 0')