Refactor repeated pattern into extracted method

Seems like we'll be checking login status before finding a resource
a lot, so here's a standard way to do it.
This commit is contained in:
Joe Corcoran 2016-06-21 13:17:44 +02:00 committed by Renée Hendricksen
parent 1a07e199b5
commit f5bc526f25
7 changed files with 14 additions and 10 deletions

View File

@ -30,6 +30,10 @@ module Travis::API::V3
false
end
def full_access_or_logged_in?
full_access? || logged_in?
end
def visible_repositories(list)
# naïve implementation, replaced with smart implementation in specific subclasses
return list if full_access?

View File

@ -66,6 +66,11 @@ module Travis::API::V3
object
end
def check_login_and_find(*args)
raise LoginRequired unless access_control.full_access_or_logged_in?
find(*args)
end
def not_found(actually_not_found = false, type = nil)
type, actually_not_found = actually_not_found, false if actually_not_found.is_a? Symbol
error = actually_not_found ? EntityMissing : NotFound

View File

@ -4,8 +4,7 @@ module Travis::API::V3
params :id, prefix: :env_var
def run!
raise LoginRequired unless access_control.logged_in? or access_control.full_access?
raise NotFound unless repository = find(:repository)
repository = check_login_and_find(:repository)
query.delete(repository)
end
end

View File

@ -4,8 +4,7 @@ module Travis::API::V3
params :id, prefix: :env_var
def run!
raise LoginRequired unless access_control.logged_in? or access_control.full_access?
raise NotFound unless repository = find(:repository)
repository = check_login_and_find(:repository)
query.find(repository)
end
end

View File

@ -4,8 +4,7 @@ module Travis::API::V3
params :id, :name, :value, :public, prefix: :env_var
def run!
raise LoginRequired unless access_control.logged_in? or access_control.full_access?
raise NotFound unless repository = find(:repository)
repository = check_login_and_find(:repository)
query.update(repository)
end
end

View File

@ -4,8 +4,7 @@ module Travis::API::V3
params :id, :name, :value, :public, prefix: :env_var
def run!
raise LoginRequired unless access_control.logged_in? or access_control.full_access?
raise NotFound unless repository = find(:repository)
repository = check_login_and_find(:repository)
env_var = query(:env_vars).create(repository)
result(:env_var, env_var, status: 201)
end

View File

@ -1,8 +1,7 @@
module Travis::API::V3
class Services::EnvVars::ForRepository < Service
def run!
raise LoginRequired unless access_control.logged_in? or access_control.full_access?
raise NotFound unless repository = find(:repository)
repository = check_login_and_find(:repository)
find(:env_vars, repository)
end
end