Sha256: e0b4f90bcb8d5b51d6f1542c7bbd0d5065cd21d52e560c79319c94ea0b82b9d7
Contents?: true
Size: 1001 Bytes
Versions: 4
Compression:
Stored size: 1001 Bytes
Contents
# frozen_string_literal: true module PubSubModelSync class ServiceBase SERVICE_KEY = 'service_model_sync' def listen_messages raise 'method :listen_messages must be defined in service' end def publish(_data, _attributes) raise 'method :publish must be defined in service' end def stop raise 'method :stop must be defined in service' end private # @param payload (String JSON): '{"data":{}, "attributes":{..}}' # refer: PubSubModelSync::MessagePublisher(.publish_model | .publish_data) def perform_message(payload) data, attrs = parse_message_payload(payload) args = [data, attrs[:klass], attrs[:action]] PubSubModelSync::MessageProcessor.new(*args).process end def parse_message_payload(payload) message_payload = JSON.parse(payload).symbolize_keys data = message_payload[:data].symbolize_keys attrs = message_payload[:attributes].symbolize_keys [data, attrs] end end end
Version data entries
4 entries across 4 versions & 1 rubygems