class PubSubModelSync::ServiceBase
Constants
- SERVICE_KEY
Public Instance Methods
listen_messages()
click to toggle source
# File lib/pub_sub_model_sync/service_base.rb, line 8 def listen_messages raise NoMethodError, 'method :listen_messages must be defined in service' end
publish(_payload)
click to toggle source
@param _payload (Payload
)
# File lib/pub_sub_model_sync/service_base.rb, line 13 def publish(_payload) raise NoMethodError, 'method :publish must be defined in service' end
stop()
click to toggle source
# File lib/pub_sub_model_sync/service_base.rb, line 17 def stop raise NoMethodError, 'method :stop must be defined in service' end
Private Instance Methods
decode_payload(payload_info)
click to toggle source
@return Payload
# File lib/pub_sub_model_sync/service_base.rb, line 45 def decode_payload(payload_info) payload = ::PubSubModelSync::Payload.from_payload_data(JSON.parse(payload_info)) log("Received message: #{[payload]}") if config.debug payload end
encode_payload(payload)
click to toggle source
@param payload (Payload
) @return (String): Json Format
# File lib/pub_sub_model_sync/service_base.rb, line 25 def encode_payload(payload) data = payload.to_h not_important_keys = %i[ordering_key topic_name forced_ordering_key] reduce_payload_size = !config.debug data[:headers].except!(*not_important_keys) if reduce_payload_size data.to_json end
process_message(payload_info)
click to toggle source
@param (String: Payload
in json format)
# File lib/pub_sub_model_sync/service_base.rb, line 34 def process_message(payload_info) payload = decode_payload(payload_info) return payload.process unless same_app_message?(payload) log("Skipping message from same origin: #{[payload]}") if config.debug rescue => e error_payload = [payload, e.message, e.backtrace] log("Error while starting to process a message: #{error_payload}", :error) end
same_app_message?(payload)
click to toggle source
@param payload (Payload
)
# File lib/pub_sub_model_sync/service_base.rb, line 52 def same_app_message?(payload) key = payload.headers[:app_key] key && key == config.subscription_key end