Class: DupPackageService
- Inherits:
-
Object
- Object
- DupPackageService
- Includes:
- ImageHelper
- Defined in:
- app/services/dup_package_service.rb
Overview
typed: ignore
Instance Attribute Summary collapse
-
#new_package ⇒ Object
Returns the value of attribute new_package.
-
#old_package ⇒ Object
Returns the value of attribute old_package.
Instance Method Summary collapse
- #dup_agendas ⇒ Object
- #dup_kids_prices ⇒ Object
- #dup_package ⇒ Object
- #dup_package_attr ⇒ Object
- #dup_package_benefits ⇒ Object
- #dup_package_menus ⇒ Object
- #dup_pricing_groups ⇒ Object
- #dup_pricing_menus ⇒ Object
- #dup_pricings ⇒ Object
- #dup_restaurant_packages ⇒ Object
- #execute ⇒ Object
-
#initialize(package_class, package_id) ⇒ DupPackageService
constructor
A new instance of DupPackageService.
Methods included from ImageHelper
Constructor Details
#initialize(package_class, package_id) ⇒ DupPackageService
Returns a new instance of DupPackageService.
7 8 9 |
# File 'app/services/dup_package_service.rb', line 7 def initialize(package_class, package_id) self.old_package = package_class.find package_id end |
Instance Attribute Details
#new_package ⇒ Object
Returns the value of attribute new_package.
5 6 7 |
# File 'app/services/dup_package_service.rb', line 5 def new_package @new_package end |
#old_package ⇒ Object
Returns the value of attribute old_package.
5 6 7 |
# File 'app/services/dup_package_service.rb', line 5 def old_package @old_package end |
Instance Method Details
#dup_agendas ⇒ Object
50 51 52 53 54 55 56 |
# File 'app/services/dup_package_service.rb', line 50 def dup_agendas old_package.agendas.each do |old_agenda| agenda = old_agenda.dup agenda.package = new_package agenda.save! end end |
#dup_kids_prices ⇒ Object
130 131 132 133 134 135 136 |
# File 'app/services/dup_package_service.rb', line 130 def dup_kids_prices old_package.kids_prices.each do |old_kids_price| kids_price = old_kids_price.dup kids_price.package = new_package kids_price.save! end end |
#dup_package ⇒ Object
32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
# File 'app/services/dup_package_service.rb', line 32 def dup_package self.new_package = old_package.dup if old_package.cover_image.present? && old_package.cover_image.file.exists? new_package.remote_cover_image_url = fix_image_url(old_package.cover_image_url) else new_package.cover_image = '' end if old_package.tnc_image.present? && old_package.tnc_image.file.exists? new_package.remote_tnc_image_url = fix_image_url(old_package.tnc_image_url) else new_package.tnc_image = '' end new_package.save! new_package url = "#{AdminSetting.}duplicates/execute?old_package=#{old_package.id}&new_package=#{new_package.id}&package_type=#{old_package.class.name}" Faraday.get(url) if HhPackage::COMBINE_MENU_V2.include?(old_package.) end |
#dup_package_attr ⇒ Object
82 83 84 85 86 |
# File 'app/services/dup_package_service.rb', line 82 def dup_package_attr package_attr = old_package.package_attr.dup package_attr.package = new_package package_attr.save! end |
#dup_package_benefits ⇒ Object
138 139 140 141 142 143 144 145 146 |
# File 'app/services/dup_package_service.rb', line 138 def dup_package_benefits return unless old_package.benefit_type == HhPackage::PackageBenefit::EXTRA_BENEFIT old_package.package_benefits.find_each do |old_package_benefit| package_benefit = old_package_benefit.dup package_benefit.package = new_package package_benefit.save! end end |
#dup_package_menus ⇒ Object
101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 |
# File 'app/services/dup_package_service.rb', line 101 def old_package..each do || = .dup if .image.present? && .image.file.exists? request = Faraday.get fix_image_url(.image_url) File.binwrite("tmp/#{.id}.jpg", request.body) .image = File.open("tmp/#{.id}.jpg") else .image = '' end .package = new_package .save! end old_package..each do || = .dup .package = new_package .save! ..each do || = .dup .section = .image = .image .save! .image.recreate_versions! end end end |
#dup_pricing_groups ⇒ Object
66 67 68 69 70 71 72 |
# File 'app/services/dup_package_service.rb', line 66 def dup_pricing_groups old_package.pricing_groups.each do |old_pricing_groups| pricing_groups = old_pricing_groups.dup pricing_groups.package = new_package pricing_groups.save! end end |
#dup_pricing_menus ⇒ Object
74 75 76 77 78 79 80 |
# File 'app/services/dup_package_service.rb', line 74 def old_package..each do || = .dup .package = new_package .save! end end |
#dup_pricings ⇒ Object
58 59 60 61 62 63 64 |
# File 'app/services/dup_package_service.rb', line 58 def dup_pricings old_package.pricings.each do |old_pricing| pricing = old_pricing.dup pricing.package = new_package pricing.save! end end |
#dup_restaurant_packages ⇒ Object
88 89 90 91 92 93 94 95 96 97 98 99 |
# File 'app/services/dup_package_service.rb', line 88 def dup_restaurant_packages old_package.restaurant_packages.find_each do |restaurant_package| rest_pack = restaurant_package.dup rest_pack.package = new_package rest_pack.rank = generate_rank rest_pack.setup_slug # to avoid validation errors rest_pack.end_date = rest_pack.start_date if rest_pack.end_date < rest_pack.start_date rest_pack.active = false if rest_pack.end_date < Date.today rest_pack.save! end end |
#execute ⇒ Object
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
# File 'app/services/dup_package_service.rb', line 11 def execute valid = false ActiveRecord::Base.transaction do dup_package dup_package_attr dup_kids_prices dup_agendas dup_pricings dup_pricing_groups dup_restaurant_packages dup_package_benefits HhPackage::PackageAttrGenerator.perform_async(package_id: new_package.id, package_type: new_package.class.name) valid = true end valid end |