39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
|
# File 'app/graphql/shopify_graphql/app_subscription_fields.rb', line 39
def self.parse(data)
recurring_line_item = data.lineItems.find do |line_item|
line_item.plan.pricingDetails.__typename == "AppRecurringPricing"
end
recurring_pricing = recurring_line_item&.plan&.pricingDetails
usage_line_item = data.lineItems.find do |line_item|
line_item.plan.pricingDetails.__typename == "AppUsagePricing"
end
usage_pricing = usage_line_item&.plan&.pricingDetails
OpenStruct.new(
id: data.id,
name: data.name,
status: data.status,
created_at: data.createdAt && Time.parse(data.createdAt),
trial_days: data.trialDays,
current_period_end: data.currentPeriodEnd && Time.parse(data.currentPeriodEnd),
test: data.test,
recurring_line_item_id: recurring_line_item&.id,
recurring_price: recurring_pricing&.price&.amount&.to_d,
recurring_interval: recurring_pricing&.interval,
usage_line_item_id: usage_line_item&.id,
usage_balance: usage_pricing&.balanceUsed&.amount&.to_d,
usage_capped_amount: usage_pricing&.cappedAmount&.amount&.to_d,
usage_interval: usage_pricing&.interval,
usage_terms: usage_pricing&.terms
)
end
|