Class: Netfira::WebConnect::Models::Shop

Inherits:
Netfira::WebConnect::Model::Support show all
Defined in:
lib/netfira/web_connect/models/support/shop.rb

Defined Under Namespace

Classes: Settings

Instance Method Summary collapse

Methods inherited from Netfira::WebConnect::Model::Support

table_name

Methods inherited from Netfira::WebConnect::Model

#dispatch_event, plural_name, single_name, table_name

Instance Method Details

#amqp_exchangeObject



30
31
32
# File 'lib/netfira/web_connect/models/support/shop.rb', line 30

def amqp_exchange
  AMQP.exchange_for_shop self
end

#amqp_publish(message, **opts) ⇒ Object



38
39
40
# File 'lib/netfira/web_connect/models/support/shop.rb', line 38

def amqp_publish(message, **opts)
  amqp_exchange && amqp_exchange.publish(message, **opts.merge(routing_key: amqp_queue))
end

#amqp_queueObject



34
35
36
# File 'lib/netfira/web_connect/models/support/shop.rb', line 34

def amqp_queue
  AMQP.queue_name_for_shop self
end

#find_relation_by_origin_ids(**args) ⇒ Object

Raises:

  • (ArgumentError)


20
21
22
23
24
25
26
27
28
# File 'lib/netfira/web_connect/models/support/shop.rb', line 20

def find_relation_by_origin_ids(**args)
  raise ArgumentError, "Provide exactly 2 origin IDs, e.g. :product => 'abc'" unless args.length == 2
  classes = args.keys.map do |type|
    name = type.to_s.camelize.to_sym
    Models.const_get(name).tap { |k| raise "#{type} isn't a valid record type. Use singular snake-case, e.g. :product" unless k < Model::Record }
  end
  relation_class = Model::Relation.for!(*classes)
  relation_class.with_deleted.find_by_origin_ids(args.merge shop: self).first
end

#localeObject



16
17
18
# File 'lib/netfira/web_connect/models/support/shop.rb', line 16

def locale
  settings[:locale] || Netfira::WebConnect.system_locale
end

#reloadObject



11
12
13
14
# File 'lib/netfira/web_connect/models/support/shop.rb', line 11

def reload
  @settings = nil
  super
end

#settingsObject



7
8
9
# File 'lib/netfira/web_connect/models/support/shop.rb', line 7

def settings
  @settings ||= Settings.new(setting_models)
end