Class: Deliver::UploadPriceTier
- Inherits:
-
Object
- Object
- Deliver::UploadPriceTier
- Defined in:
- deliver/lib/deliver/upload_price_tier.rb
Overview
Set the app’s pricing
Instance Method Summary collapse
Instance Method Details
#upload(options) ⇒ Object
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
# File 'deliver/lib/deliver/upload_price_tier.rb', line 7 def upload() return unless [:price_tier] price_tier = [:price_tier].to_s app = Deliver.cache[:app] attributes = {} # Check App update method to understand how to use territory_ids. territory_ids = nil # nil won't update app's territory_ids, empty array would remove app from sale. # As of 2020-09-14: # Official App Store Connect does not have an endpoint to get app prices for an app # Need to get prices from the app's relationships # Prices from app's relationship doess not have price tier so need to fetch app price with price tier relationship app_prices = app.prices if app_prices&.first app_price = Spaceship::ConnectAPI.get_app_price(app_price_id: app_prices.first.id, includes: "priceTier").first old_price = app_price.price_tier.id else UI.("App has no prices yet... Enabling all countries in App Store Connect") territory_ids = Spaceship::ConnectAPI::Territory.all.map(&:id) attributes[:availableInNewTerritories] = true end if price_tier == old_price UI.success("Price Tier unchanged (tier #{old_price})") return end app.update(attributes: attributes, app_price_tier_id: price_tier, territory_ids: territory_ids) UI.success("Successfully updated the pricing from #{old_price} to #{price_tier}") end |