Sha256: ef86e71cce368c97403d296fcd20e60af759275a77103959b132040d56b6ed61
Contents?: true
Size: 928 Bytes
Versions: 8
Compression:
Stored size: 928 Bytes
Contents
# frozen_string_literal: true require_dependency "renalware/feeds" module Renalware module Feeds # # Responsible for coordinating the processing sequences of a raw HL7 message. # class MessageProcessor include Wisper::Publisher def call(raw_message) ActiveRecord::Base.transaction do message_payload = parse_message(raw_message) persist_message(message_payload) broadcast(:message_processed, message_payload) end rescue StandardError => exception notify_exception(exception) raise exception end private def parse_message(raw_message) MessageParser.new.parse(raw_message) end def persist_message(message_payload) PersistMessage.new.call(message_payload) end def notify_exception(exception) ExceptionNotifier.new.notify(exception) end end end end
Version data entries
8 entries across 8 versions & 1 rubygems