johnrees/fablabs

View on GitHub
app/models/machine.rb

Summary

Maintainability
A
0 mins
Test Coverage
class Machine < Thing

  after_save :discourse_sync_if_needed, if: -> { ENV['DISCOURSE_ENABLED'] }

  def to_param
    slug
  end

  def async_discourse_sync
    DiscourseMachineWorker.perform_async(self.id)
  end

  def discourse_sync
    DiscourseService::Machine.new(self).sync
  end

  private

  def discourse_sync_if_needed
    if (changes.keys & ["name", "description"]).present?
      async_discourse_sync
    end
  end
end