refining work on star/unstar endpoints

This commit is contained in:
carlad 2015-11-18 18:47:59 +01:00
parent 714e40beca
commit 16687f16d7
3 changed files with 11 additions and 4 deletions

View File

@ -35,6 +35,9 @@ module Travis
NotImplemented = ServerError .create('request not (yet) implemented', status: 501) NotImplemented = ServerError .create('request not (yet) implemented', status: 501)
RequestLimitReached = ClientError .create('request limit reached for resource', status: 429) RequestLimitReached = ClientError .create('request limit reached for resource', status: 429)
AlreadySyncing = ClientError .create('sync already in progress', status: 409) AlreadySyncing = ClientError .create('sync already in progress', status: 409)
AlreadyStarred = ClientError .create('repository is already starred', status: 409)
NotStarred = ClientError .create('repository is not a starred repository')
end end
end end
end end

View File

@ -3,8 +3,11 @@ module Travis::API::V3
def run! def run!
raise LoginRequired unless access_control.logged_in? or access_control.full_access? raise LoginRequired unless access_control.logged_in? or access_control.full_access?
raise NotFound unless repository = find(:repository) 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) Models::StarredRepository.create(repository_id: repository.id, user_id: access_control.user.id)
# repository #TODO what do we want to return??? repository #TODO what do we want to return???
end end
# def check_access(repository) # def check_access(repository)

View File

@ -3,9 +3,10 @@ module Travis::API::V3
def run! def run!
raise LoginRequired unless access_control.logged_in? or access_control.full_access? raise LoginRequired unless access_control.logged_in? or access_control.full_access?
raise NotFound unless repository = find(:repository) raise NotFound unless repository = find(:repository)
Models::StarredRepository.where(repository_id: repository.id, user_id: access_control.user.id).delete starred_repo = Models::StarredRepository.where(repository_id: repository.id, user_id: access_control.user.id)
raise NotStarred unless !starred_repo.nil?
# repository #TODO what do we want to return??? starred_repo.first.delete
repository #TODO what do we want to return???
end end
# def check_access(repository) # def check_access(repository)