From 3680fcf3894feb74c860acff00fccd02ff48201a Mon Sep 17 00:00:00 2001 From: Konstantin Haase Date: Fri, 17 Apr 2015 12:16:11 +0200 Subject: [PATCH] v3: add subscription model --- lib/travis/api/v3/features.rb | 9 +++++++++ lib/travis/api/v3/github.rb | 1 - lib/travis/api/v3/models/organization.rb | 5 +++++ lib/travis/api/v3/models/subscription.rb | 4 ++++ lib/travis/api/v3/models/user.rb | 7 ++++++- script/console | 2 ++ 6 files changed, 26 insertions(+), 2 deletions(-) create mode 100644 lib/travis/api/v3/features.rb create mode 100644 lib/travis/api/v3/models/subscription.rb diff --git a/lib/travis/api/v3/features.rb b/lib/travis/api/v3/features.rb new file mode 100644 index 00000000..a7b11667 --- /dev/null +++ b/lib/travis/api/v3/features.rb @@ -0,0 +1,9 @@ +module Travis::API::V3 + module Features + extend self + + def use_subscriptions? + Models::Subscription.table_exists? + end + end +end diff --git a/lib/travis/api/v3/github.rb b/lib/travis/api/v3/github.rb index b1f501c2..e9064a58 100644 --- a/lib/travis/api/v3/github.rb +++ b/lib/travis/api/v3/github.rb @@ -1,6 +1,5 @@ require 'gh' - module Travis::API::V3 class GitHub DEFAULT_OPTIONS = { diff --git a/lib/travis/api/v3/models/organization.rb b/lib/travis/api/v3/models/organization.rb index e42e3364..973487ed 100644 --- a/lib/travis/api/v3/models/organization.rb +++ b/lib/travis/api/v3/models/organization.rb @@ -3,5 +3,10 @@ module Travis::API::V3 has_many :memberships has_many :users, through: :memberships has_many :repositories, as: :owner + has_one :subscription, as: :owner + + def subscription + super if Features.use_subscriptions? + end end end diff --git a/lib/travis/api/v3/models/subscription.rb b/lib/travis/api/v3/models/subscription.rb new file mode 100644 index 00000000..7a73e9b5 --- /dev/null +++ b/lib/travis/api/v3/models/subscription.rb @@ -0,0 +1,4 @@ +module Travis::API::V3 + class Models::Subscription < Model + end +end diff --git a/lib/travis/api/v3/models/user.rb b/lib/travis/api/v3/models/user.rb index 4ba4d7f8..626996c0 100644 --- a/lib/travis/api/v3/models/user.rb +++ b/lib/travis/api/v3/models/user.rb @@ -4,13 +4,18 @@ module Travis::API::V3 has_many :permissions, dependent: :destroy has_many :emails, dependent: :destroy has_many :tokens, dependent: :destroy - has_many :repositories, through: :permissions has_many :organizations, through: :memberships + has_many :repositories, as: :owner + has_one :subscription, as: :owner serialize :github_oauth_token, Extensions::EncryptedColumn.new(disable: true) def token tokens.first_or_create.token end + + def subscription + super if Features.use_subscriptions? + end end end diff --git a/script/console b/script/console index fd1fd99c..64380b3e 100755 --- a/script/console +++ b/script/console @@ -15,6 +15,8 @@ class Travis::Console end end +V3 = Travis::API::V3 + Travis::Api::App.setup console = Travis::Console.new methods = Travis::Console.instance_methods - Object.instance_methods