Class: Netfira::WebConnect::Models::Shop
Defined Under Namespace
Classes: Settings
Instance Method Summary
collapse
table_name
#dispatch_event, plural_name, single_name, table_name
Instance Method Details
#amqp_exchange ⇒ Object
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_queue ⇒ Object
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
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
|
#reload ⇒ Object
11
12
13
14
|
# File 'lib/netfira/web_connect/models/support/shop.rb', line 11
def reload
@settings = nil
super
end
|
#settings ⇒ Object
7
8
9
|
# File 'lib/netfira/web_connect/models/support/shop.rb', line 7
def settings
@settings ||= Settings.new(setting_models)
end
|