class MessageStore::Postgres::Get::Stream::Last
Public Class Methods
sql_command(stream_name)
click to toggle source
# File lib/message_store/postgres/get/stream/last.rb, line 47 def self.sql_command(stream_name) parameters = '$1::varchar' "SELECT * FROM get_last_stream_message(#{parameters});" end
Public Instance Methods
call(stream_name)
click to toggle source
# File lib/message_store/postgres/get/stream/last.rb, line 14 def call(stream_name) logger.trace(tag: :get) { "Getting last message data (Stream Name: #{stream_name})" } result = get_result(stream_name) return nil if result.nil? message_data = convert(result[0]) logger.info(tag: :get) { "Finished getting message data (Stream Name: #{stream_name})" } logger.info(tags: [:data, :message_data]) { message_data.pretty_inspect } message_data end
configure(session: nil)
click to toggle source
# File lib/message_store/postgres/get/stream/last.rb, line 10 def configure(session: nil) Session.configure(self, session: session) end
convert(record)
click to toggle source
# File lib/message_store/postgres/get/stream/last.rb, line 53 def convert(record) logger.trace(tag: :get) { "Converting record to message data" } message_data = Get.message_data(record) logger.debug(tag: :get) { "Converted record to message data" } message_data end
get_result(stream_name)
click to toggle source
# File lib/message_store/postgres/get/stream/last.rb, line 29 def get_result(stream_name) logger.trace(tag: :get) { "Getting last record (Stream: #{stream_name})" } sql_command = self.class.sql_command(stream_name) parameter_values = [ stream_name ] result = session.execute(sql_command, parameter_values) logger.debug(tag: :get) { "Finished getting result (Count: #{result.ntuples}, Stream: #{stream_name}" } return nil if result.ntuples == 0 result end