Sha256: 4ee6e5ec5f4333e8035e25879b0ae51d046f3b9d9fb6f8645f4cc74eba8747c3

Contents?: true

Size: 1009 Bytes

Versions: 5

Compression:

Stored size: 1009 Bytes

Contents

# frozen_string_literal: true

require 'cyclone_lariat/repo/mappers/base'

module CycloneLariat
  class Outbox
    module Mappers
      class Messages < CycloneLariat::Repo::Mappers::Base
        class << self
          def from_row(row)
            return if row.nil?

            attrs = hash_from_json_column(row[:serialized_message]).symbolize_keys
            attrs[:uuid]             = row[:uuid]
            attrs[:deduplication_id] = row[:deduplication_id]
            attrs[:group_id]         = row[:group_id]
            attrs[:sending_error]    = row[:sending_error]

            attrs
          end

          def to_row(input)
            {}.tap do |row|
              row[:uuid] = input.uuid if input.uuid
              row[:deduplication_id] = input.deduplication_id
              row[:group_id] = input.group_id
              row[:serialized_message] = input.to_json
              row[:sending_error] = input.sending_error
            end
          end
        end
      end
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
cyclone_lariat-1.0.0 lib/cyclone_lariat/plugins/outbox/mappers/messages.rb
cyclone_lariat-1.0.0.rc9 lib/cyclone_lariat/plugins/outbox/mappers/messages.rb
cyclone_lariat-1.0.0.rc8 lib/cyclone_lariat/plugins/outbox/mappers/messages.rb
cyclone_lariat-1.0.0.rc7 lib/cyclone_lariat/plugins/outbox/mappers/messages.rb
cyclone_lariat-1.0.0.rc6 lib/cyclone_lariat/plugins/outbox/mappers/messages.rb