Class: TranslationCms::Api::Rates::Service
- Inherits:
-
Base
- Object
- JsonApiClient::Resource
- Base
- Base
- TranslationCms::Api::Rates::Service
show all
- Extended by:
- EnumField::EnumeratedAttribute
- Defined in:
- lib/translation_cms/api/rates/service.rb
Class Method Summary
collapse
Instance Method Summary
collapse
Methods inherited from Base
all!, custom_scope!, default_attributes, destroy, dummy_resource!, #method_missing_with_translations_will_change, parsed!, path_with_custom_scope, resource_type!, update
Class Method Details
.find_rate(params = {}) ⇒ Object
36
37
38
39
40
41
42
43
44
45
|
# File 'lib/translation_cms/api/rates/service.rb', line 36
def find_rate(params = {})
service = find_or_first(params['service_id'], TranslationCms::Api::Service.all!)
target_id = params[
service.component_ids.include?(OrderFormComponent.category.id) ? 'category_id' : 'industry_id'
].to_i
all!.detect do |rate|
(rate.service_id == service.id) && ((target_id <= 0) || (rate.target_id == target_id))
end
end
|
.find_rates_by_service(params = {}) ⇒ Object
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
|
# File 'lib/translation_cms/api/rates/service.rb', line 47
def find_rates_by_service(params = {})
service = find_or_first(params['service_id'], TranslationCms::Api::Service.all!)
result = {}
targets = TranslationCms::Api::IndustryExpertise.all!
@base_price ||= TranslationCms::Api::Setting.all!.first.base_price
all!.each do |rt|
next unless rt.service_id == service.id
result[rt.target_id] ||= {
target: find_or_first(rt.target_id, targets),
rate: rt,
price: rt[:price] * @base_price || 0.1
}
result[rt.target_id][:rate] = rt if result[rt.target_id][:rate].price > rt.price
end
result
end
|
Instance Method Details
#category? ⇒ Boolean
19
20
21
|
# File 'lib/translation_cms/api/rates/service.rb', line 19
def category?
target == 'Category'
end
|
#category_id ⇒ Object
27
28
29
|
# File 'lib/translation_cms/api/rates/service.rb', line 27
def category_id
target_id unless category?
end
|
#industry_expertise? ⇒ Boolean
23
24
25
|
# File 'lib/translation_cms/api/rates/service.rb', line 23
def industry_expertise?
target == 'IndustryExpertise'
end
|
#industry_expertise_id ⇒ Object
31
32
33
|
# File 'lib/translation_cms/api/rates/service.rb', line 31
def industry_expertise_id
target_id unless industry_expertise?
end
|
#service ⇒ Object
15
16
17
|
# File 'lib/translation_cms/api/rates/service.rb', line 15
def service
@service ||= TranslationCms::Api::Service.find(service_id).first
end
|