Skip to content

Commit ab0a6bf

Browse files
committed
WIP api for billing v2 frontend
1 parent d5e8dfb commit ab0a6bf

File tree

5 files changed

+32
-10
lines changed

5 files changed

+32
-10
lines changed
Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,16 @@
11
module Travis::API::V3
22
class Models::V2PlanConfig
3-
attr_reader :id, :name, :private_repos, :default_addons, :starting_price, :starting_users
3+
attr_reader :id, :name, :private_repos, :default_addons, :starting_price, :starting_users, :private_credits, :public_credits
44

55
def initialize(attrs)
66
@id = attrs.fetch('id')
77
@name = attrs.fetch('name')
88
@private_repos = attrs.fetch('private_repos')
9-
@default_addons = attrs.fetch('default_addons')
9+
@default_addons = attrs.fetch('addon_configs')
1010
@starting_price = attrs.fetch('starting_price')
1111
@starting_users = attrs.fetch('starting_users')
12+
@private_credits = attrs.fetch('private_credits')
13+
@public_credits = attrs.fetch('public_credits')
1214
end
1315
end
1416
end

lib/travis/api/v3/models/v2_subscription.rb

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,14 @@ module Travis::API::V3
22
class Models::V2Subscription
33
include Models::Owner
44

5-
attr_reader :id, :permissions, :status, :source, :billing_info, :credit_card_info, :owner, :payment_intent, :addons, :created_at
5+
attr_reader :id, :plan, :permissions, :status, :source, :billing_info, :credit_card_info, :owner, :payment_intent, :addons, :created_at
66

77
def initialize(attributes = {})
88
@id = attributes.fetch('id')
9+
plan_data = attributes.fetch('plan_config')
10+
@plan = plan_data && Models::V2PlanConfig.new(plan_data)
911
@permissions = Models::BillingPermissions.new(attributes.fetch('permissions'))
10-
@status = attributes.fetch('status')
12+
@status = 'subscribed'
1113
@source = attributes.fetch('source')
1214
@billing_info = attributes['billing_info'] && Models::BillingInfo.new(@id, attributes['billing_info'])
1315
@credit_card_info = attributes['credit_card_info'] && Models::CreditCardInfo.new(@id, attributes['credit_card_info'])
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
module Travis::API::V3
22
class Renderer::V2PlanConfig < ModelRenderer
3-
representation(:standard, :id, :name, :private_repos, :default_addons, :starting_price, :starting_users)
4-
representation(:minimal, :id, :name, :private_repos, :default_addons, :starting_price, :starting_users)
3+
representation(:standard, :id, :name, :private_repos, :default_addons, :starting_price, :starting_users, :private_credits, :public_credits)
4+
representation(:minimal, :id, :name, :private_repos, :default_addons, :starting_price, :starting_users, :private_credits, :public_credits)
55
end
66
end

lib/travis/api/v3/renderer/v2_subscription.rb

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,6 @@ def plan
1414
Renderer.render_model(model.plan, mode: :standard) unless model.plan.nil?
1515
end
1616

17-
def addons
18-
Renderer.render_model(model.addons, mode: :standard) unless model.addons.nil?
19-
end
20-
2117
def payment_intent
2218
Renderer.render_model(model.payment_intent, mode: :standard) unless model.payment_intent.nil?
2319
end
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
module Travis::API::V3
2+
class Renderer::V2Subscriptions < CollectionRenderer
3+
type :v2_subscriptions
4+
collection_key :v2_subscriptions
5+
6+
def fields
7+
super.tap do |fields|
8+
fields[:@permissions] = render_entry(permissions)
9+
end
10+
end
11+
12+
private
13+
14+
def list
15+
@list.subscriptions
16+
end
17+
18+
def permissions
19+
@list.permissions
20+
end
21+
end
22+
end

0 commit comments

Comments
 (0)