Sha256: 248bbcd6324aa689040fe63b4359da7f7cc82b1fb0d7609d2e742a0ba0db4060

Contents?: true

Size: 1.09 KB

Versions: 149

Compression:

Stored size: 1.09 KB

Contents

# frozen_string_literal: true

module Renalware
  module PD
    class SavePeritonitisEpisode
      include Wisper::Publisher

      def initialize(patient:, episode:)
        @patient = patient
        @episode = episode
      end

      def call(params:)
        success = save_episode(episode, params)
        success ? broadcast(:save_success, episode) : broadcast(:save_failure, episode)
        success
      end

      private

      attr_reader :patient, :episode

      def episodes
        patient.peritonitis_episodes
      end

      def save_episode(episode, params)
        PeritonitisEpisode.transaction do
          episode.assign_attributes(params.except(:episode_types))
          episode.save && save_episode_types(episode.episode_types, params)
        end
      end

      def save_episode_types(episode_types, params)
        episode_type_desc_ids = params.fetch(:episode_types, [])
        episode_types.destroy_all
        episode_type_desc_ids.each do |desc_id|
          episode_types.create!(peritonitis_episode_type_description_id: desc_id)
        end
        true
      end
    end
  end
end

Version data entries

149 entries across 149 versions & 1 rubygems

Version Path
renalware-core-2.1.1 app/models/renalware/pd/save_peritonitis_episode.rb
renalware-core-2.1.0 app/models/renalware/pd/save_peritonitis_episode.rb
renalware-core-2.0.167 app/models/renalware/pd/save_peritonitis_episode.rb
renalware-core-2.0.166 app/models/renalware/pd/save_peritonitis_episode.rb
renalware-core-2.0.165 app/models/renalware/pd/save_peritonitis_episode.rb
renalware-core-2.0.164 app/models/renalware/pd/save_peritonitis_episode.rb
renalware-core-2.0.163 app/models/renalware/pd/save_peritonitis_episode.rb
renalware-core-2.0.162 app/models/renalware/pd/save_peritonitis_episode.rb
renalware-core-2.0.161 app/models/renalware/pd/save_peritonitis_episode.rb
renalware-core-2.0.160 app/models/renalware/pd/save_peritonitis_episode.rb
renalware-core-2.0.159 app/models/renalware/pd/save_peritonitis_episode.rb
renalware-core-2.0.158 app/models/renalware/pd/save_peritonitis_episode.rb
renalware-core-2.0.157 app/models/renalware/pd/save_peritonitis_episode.rb
renalware-core-2.0.156 app/models/renalware/pd/save_peritonitis_episode.rb
renalware-core-2.0.155 app/models/renalware/pd/save_peritonitis_episode.rb
renalware-core-2.0.153 app/models/renalware/pd/save_peritonitis_episode.rb
renalware-core-2.0.152 app/models/renalware/pd/save_peritonitis_episode.rb
renalware-core-2.0.151 app/models/renalware/pd/save_peritonitis_episode.rb
renalware-core-2.0.149 app/models/renalware/pd/save_peritonitis_episode.rb
renalware-core-2.0.148 app/models/renalware/pd/save_peritonitis_episode.rb