Sha256: 3e9d9bc25fab73ee7fa8b8ddedbf2fd213ca658af2da0a450058b5a98e336ba4

Contents?: true

Size: 1.14 KB

Versions: 8

Compression:

Stored size: 1.14 KB

Contents

module GeoConcerns
  class EventsGenerator
    class GeoblacklightEventGenerator < BaseEventsGenerator
      def record_created(record)
        publish_message(
          message("CREATED", record)
        )
      end

      def record_deleted(record)
        publish_message(
          delete_message("DELETED", record)
        )
      end

      def record_updated(record)
        publish_message(
          message("UPDATED", record)
        )
      end

      def message(type, record)
        base_message(type, record).merge("exchange" => :geoblacklight,
                                         "doc" => generate_document(record))
      end

      def delete_message(type, record)
        base_message(type, record).merge("exchange" => :geoblacklight,
                                         "id" => slug(record))
      end

      private

        def generate_document(record)
          Discovery::DocumentBuilder.new(record, Discovery::GeoblacklightDocument.new)
        end

        def slug(record)
          return record.id unless record.respond_to?(:provenance)
          "#{record.provenance.parameterize}-#{record.id}"
        end
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
geo_concerns-0.3.4 app/services/geo_concerns/events_generator/geoblacklight_event_generator.rb
geo_concerns-0.3.3 app/services/geo_concerns/events_generator/geoblacklight_event_generator.rb
geo_concerns-0.3.2 app/services/geo_concerns/events_generator/geoblacklight_event_generator.rb
geo_concerns-0.3.1 app/services/geo_concerns/events_generator/geoblacklight_event_generator.rb
geo_concerns-0.3.0 app/services/geo_concerns/events_generator/geoblacklight_event_generator.rb
geo_concerns-0.2.0 app/services/geo_concerns/events_generator/geoblacklight_event_generator.rb
geo_concerns-0.1.1 app/services/geo_concerns/events_generator/geoblacklight_event_generator.rb
geo_concerns-0.1.0 app/services/geo_concerns/events_generator/geoblacklight_event_generator.rb