diff --git a/lib/travis/api/v3/queries/repository.rb b/lib/travis/api/v3/queries/repository.rb index f4f8b800..65aaa56d 100644 --- a/lib/travis/api/v3/queries/repository.rb +++ b/lib/travis/api/v3/queries/repository.rb @@ -8,12 +8,18 @@ module Travis::API::V3 raise WrongParams, 'missing repository.id'.freeze end - def star - Models::StarredRepository.create(repo_id: id, user_id: user_id) + def star(repository, current_user) + starred = Models::StarredRepository.where(repository_id: repository.id, user_id: current_user.id).first + raise AlreadyStarred unless starred == nil + Models::StarredRepository.create(repository_id: repository.id, user_id: current_user.id) + repository end - def unstar - Models::StarredRepository.where(repo_id: id, user_id: user_id).delete + def unstar(repository, current_user) + starred = Models::StarredRepository.where(repository_id: repository.id, user_id: current_user.id).first + raise NotStarred if starred == nil + starred.delete + repository end private diff --git a/lib/travis/api/v3/services/repository/star.rb b/lib/travis/api/v3/services/repository/star.rb index 425b8dfd..c0dc7075 100644 --- a/lib/travis/api/v3/services/repository/star.rb +++ b/lib/travis/api/v3/services/repository/star.rb @@ -3,11 +3,8 @@ module Travis::API::V3 def run! raise LoginRequired unless access_control.logged_in? or access_control.full_access? raise NotFound unless repository = find(:repository) - starred = Models::StarredRepository.where(repository_id: repository.id, user_id: access_control.user.id).first - raise AlreadyStarred unless starred == nil - - Models::StarredRepository.create(repository_id: repository.id, user_id: access_control.user.id) - repository #TODO what do we want to return??? + current_user = access_control.user + query.star(repository, 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 7ea5133f..8da61ffe 100644 --- a/lib/travis/api/v3/services/repository/unstar.rb +++ b/lib/travis/api/v3/services/repository/unstar.rb @@ -3,10 +3,8 @@ module Travis::API::V3 def run! raise LoginRequired unless access_control.logged_in? or access_control.full_access? raise NotFound unless repository = find(:repository) - starred = Models::StarredRepository.where(repository_id: repository.id, user_id: access_control.user.id).first - raise NotStarred if starred == nil - starred.delete - repository #TODO what do we want to return??? + current_user = access_control.user + query.unstar(repository, current_user) end # def check_access(repository)