diff --git a/Gemfile.lock b/Gemfile.lock index 8ae03428..31c70b7b 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -369,6 +369,3 @@ DEPENDENCIES travis-yaml! unicorn yard-sinatra! - -BUNDLED WITH - 1.10.6 diff --git a/lib/travis/api/v3/queries/repository.rb b/lib/travis/api/v3/queries/repository.rb index faa0f5b4..aa1c2091 100644 --- a/lib/travis/api/v3/queries/repository.rb +++ b/lib/travis/api/v3/queries/repository.rb @@ -3,18 +3,18 @@ module Travis::API::V3 params :id, :slug def find - return by_slug if slug - return Models::Repository.find_by_id(id) if id - raise WrongParams, 'missing repository.id'.freeze + @find ||= find! end - def star(repository, current_user) + def star(current_user) + repository = find starred = Models::Star.where(repository_id: repository.id, user_id: current_user.id).first Models::Star.create(repository_id: repository.id, user_id: current_user.id) unless starred repository end - def unstar(repository, current_user) + def unstar(current_user) + repository = find starred = Models::Star.where(repository_id: repository.id, user_id: current_user.id).first starred.delete if starred repository @@ -22,6 +22,12 @@ module Travis::API::V3 private + def find! + return by_slug if slug + return Models::Repository.find_by_id(id) if id + raise WrongParams, 'missing repository.id'.freeze + end + def by_slug owner_name, name = slug.split('/') Models::Repository.where(owner_name: owner_name, name: name, invalidated_at: nil).first diff --git a/lib/travis/api/v3/services/repository/star.rb b/lib/travis/api/v3/services/repository/star.rb index 79b34835..0b29c2bb 100644 --- a/lib/travis/api/v3/services/repository/star.rb +++ b/lib/travis/api/v3/services/repository/star.rb @@ -5,7 +5,7 @@ module Travis::API::V3 raise NotFound unless repository = find(:repository) check_access(repository) current_user = access_control.user - query.star(repository, current_user) + query.star(current_user) end def check_access(repository) diff --git a/lib/travis/api/v3/services/repository/unstar.rb b/lib/travis/api/v3/services/repository/unstar.rb index 8d33050c..75874f9f 100644 --- a/lib/travis/api/v3/services/repository/unstar.rb +++ b/lib/travis/api/v3/services/repository/unstar.rb @@ -5,7 +5,7 @@ module Travis::API::V3 raise NotFound unless repository = find(:repository) check_access(repository) current_user = access_control.user - query.unstar(repository, current_user) + query.unstar(current_user) end def check_access(repository)