def __init__(self, data, metadata="", event_id = None, event_type=None, is_json = False): Ensure.is_bool(is_json, "is_json") self.isJson = is_json self.data = data if is_json else str(data) self.metadata = metadata if event_id is None: self.eventId = str(uuid.uuid4()) else: self.eventId = event_id if event_type is None: self.eventType = str(type(data)) else: self.eventType = event_type
def _start_read_all_events_forward(self, prepare_position, commit_position, count, on_success, on_failed): Ensure.is_greater_equal_number_then(-1, prepare_position, "prepare_position") Ensure.is_greater_equal_number_then(-1, commit_position, "commit_position") Ensure.is_greater_equal_number_then(1, count, "count") Ensure.is_function(on_success, "on_success") Ensure.is_function(on_failed, "on_failed") events = [] batch_counter = 0 params = ReadEventsData params.prepare_position = prepare_position params.commit_position = commit_position params.count = count params.batch_counter = batch_counter params.events = events self._read_batch_all_events_forward(params, on_success, on_failed)
def _start_read_stream_events_backward(self, stream_id, start_position, count, on_success, on_failed): Ensure.is_not_empty_string(stream_id, "stream_id") Ensure.is_greater_equal_number_then(-1,start_position, "start_position") Ensure.is_greater_equal_number_then(1, count, "count") Ensure.is_function(on_success, "on_success") Ensure.is_function(on_failed, "on_failed") stream_id = quote(stream_id) events = [] batch_counter=0 params = ReadEventsData params.stream_id = stream_id params.start_position = start_position params.count = count params.batch_counter = batch_counter params.events = events self._read_batch_events_backward(params, on_success, on_failed)
def _start_read_event(self,stream_id, event_number, on_success, on_failed): Ensure.is_not_empty_string(stream_id, "stream_id") Ensure.is_greater_equal_number_then(0,event_number, "event_number") Ensure.is_function(on_success, "on_success") Ensure.is_function(on_failed, "on_failed") stream_id = quote(stream_id) url = "{0}/streams/{1}/event/{2}".format(self._base_url, stream_id, str(event_number)) self._tornado_http_sender.send_async(url, "GET", self._headers, None, lambda x: self._read_event_callback(x, on_success, on_failed))
def _start_read_all_events_backward(self, prepare_position, commit_position, count, on_success, on_failed): Ensure.is_number(prepare_position, "prepare_position") Ensure.is_number(commit_position, "commit_position") Ensure.is_greater_equal_number_then(1, count, "count") Ensure.is_function(on_success, "on_success") Ensure.is_function(on_failed, "on_failed") events = [] batch_counter = 0 params = ReadEventsData params.prepare_position = prepare_position params.commit_position = commit_position params.count = count params.batch_counter = batch_counter params.events = events self._read_batch_all_events_backward(params, on_success, on_failed)
def __init__(self, data, metadata="", event_id=None, event_type=None, is_json=False): Ensure.is_bool(is_json, "is_json") self.isJson = is_json self.data = data if is_json else str(data) self.metadata = metadata if event_id is None: self.eventId = str(uuid.uuid4()) else: self.eventId = event_id if event_type is None: self.eventType = str(type(data)) else: self.eventType = event_type
def _start_delete_stream(self,stream_id, expected_version, on_success, on_failed, ): Ensure.is_not_empty_string(stream_id, "stream_id") Ensure.is_number(expected_version, "expected_version") Ensure.is_function(on_success, "on_success") Ensure.is_function(on_failed, "on_failed") stream_id = quote(stream_id) url = "{0}/streams/{1}".format(self._base_url, stream_id) body = to_json(DeleteStreamRequestBody(expected_version)) self._tornado_http_sender.send_async(url, "DELETE", self._headers, body, lambda x: self._delete_stream_callback(x, on_success, on_failed))
def _start_read_stream_events_backward(self, stream_id, start_position, count, on_success, on_failed): Ensure.is_not_empty_string(stream_id, "stream_id") Ensure.is_greater_equal_number_then(-1, start_position, "start_position") Ensure.is_greater_equal_number_then(1, count, "count") Ensure.is_function(on_success, "on_success") Ensure.is_function(on_failed, "on_failed") stream_id = quote(stream_id) events = [] batch_counter = 0 params = ReadEventsData params.stream_id = stream_id params.start_position = start_position params.count = count params.batch_counter = batch_counter params.events = events self._read_batch_events_backward(params, on_success, on_failed)
def _start_append_to_stream(self,stream_id, events, expected_version, on_success, on_failed): Ensure.is_not_empty_string(stream_id, "stream_id") Ensure.is_number(expected_version, "expected_version") Ensure.is_function(on_success, "on_success") Ensure.is_function(on_failed, "on_failed") stream_id = quote(stream_id) if type(events) is not list: events = [events] body = to_json(AppendToStreamRequestBody(expected_version, events)) url = "{0}/streams/{1}".format(self._base_url,stream_id) self._tornado_http_sender.send_async(url,"POST", self._headers, body, lambda x: self._append_to_stream_callback(x, on_success, on_failed))
def _start_read_event(self, stream_id, event_number, on_success, on_failed): Ensure.is_not_empty_string(stream_id, "stream_id") Ensure.is_greater_equal_number_then(0, event_number, "event_number") Ensure.is_function(on_success, "on_success") Ensure.is_function(on_failed, "on_failed") stream_id = quote(stream_id) url = "{0}/streams/{1}/event/{2}".format(self._base_url, stream_id, str(event_number)) self._tornado_http_sender.send_async( url, "GET", self._headers, None, lambda x: self._read_event_callback(x, on_success, on_failed))
def _start_create_stream(self, stream_id, metadata, on_success, on_failed): Ensure.is_not_empty_string(stream_id, "stream_id") Ensure.is_function(on_success, "on_success") Ensure.is_function(on_failed, "on_failed") body = to_json(CreateStreamRequestBody(stream_id, metadata)) url = "{0}/streams".format(self._base_url) self._tornado_http_sender.send_async(url, "POST", self._headers, body, lambda x: self._create_stream_callback(x, on_success, on_failed))
def _start_append_to_stream(self, stream_id, events, expected_version, on_success, on_failed): Ensure.is_not_empty_string(stream_id, "stream_id") Ensure.is_number(expected_version, "expected_version") Ensure.is_function(on_success, "on_success") Ensure.is_function(on_failed, "on_failed") stream_id = quote(stream_id) if type(events) is not list: events = [events] body = to_json(AppendToStreamRequestBody(expected_version, events)) url = "{0}/streams/{1}".format(self._base_url, stream_id) self._tornado_http_sender.send_async( url, "POST", self._headers, body, lambda x: self._append_to_stream_callback( x, on_success, on_failed))
def _start_create_stream(self, stream_id, metadata, on_success, on_failed): Ensure.is_not_empty_string(stream_id, "stream_id") Ensure.is_function(on_success, "on_success") Ensure.is_function(on_failed, "on_failed") body = to_json(CreateStreamRequestBody(stream_id, metadata)) url = "{0}/streams".format(self._base_url) self._tornado_http_sender.send_async( url, "POST", self._headers, body, lambda x: self._create_stream_callback(x, on_success, on_failed))
def _start_delete_stream( self, stream_id, expected_version, on_success, on_failed, ): Ensure.is_not_empty_string(stream_id, "stream_id") Ensure.is_number(expected_version, "expected_version") Ensure.is_function(on_success, "on_success") Ensure.is_function(on_failed, "on_failed") stream_id = quote(stream_id) url = "{0}/streams/{1}".format(self._base_url, stream_id) body = to_json(DeleteStreamRequestBody(expected_version)) self._tornado_http_sender.send_async( url, "DELETE", self._headers, body, lambda x: self._delete_stream_callback(x, on_success, on_failed))