diff --git a/lib/travis/api/v3/routes.rb b/lib/travis/api/v3/routes.rb index 519bffaa..57efe10d 100644 --- a/lib/travis/api/v3/routes.rb +++ b/lib/travis/api/v3/routes.rb @@ -4,7 +4,7 @@ module Travis::API::V3 extend DSL resource :repository do - route '/repo/:id' + route '/repo/{repository.id}' get :find_repository end end diff --git a/lib/travis/api/v3/service.rb b/lib/travis/api/v3/service.rb index df782046..374cae17 100644 --- a/lib/travis/api/v3/service.rb +++ b/lib/travis/api/v3/service.rb @@ -4,11 +4,12 @@ module Travis::API::V3 @required_params ||= [] end - def self.params(*list, optional: false) + def self.params(*list, optional: false, prefix: nil) @params ||= [] list.each do |param| - param = param.to_s - define_method(param) { params[param] } + method = param = param.to_s + param = "#{prefix}.#{method}" if prefix + define_method(method) { params[param] } required_params << param unless optional @params << param end diff --git a/lib/travis/api/v3/services/find_repository.rb b/lib/travis/api/v3/services/find_repository.rb index 5db62e60..7091a9bb 100644 --- a/lib/travis/api/v3/services/find_repository.rb +++ b/lib/travis/api/v3/services/find_repository.rb @@ -1,6 +1,6 @@ module Travis::API::V3 class Services::FindRepository < Service - params :id, :github_id, :slug, optional: true + params :id, :github_id, :slug, optional: true, prefix: :repository def run raise NotFound, :repository unless repository and access_control.visible? repository diff --git a/spec/v3/service_index_spec.rb b/spec/v3/service_index_spec.rb index 8faa4b24..ea98e379 100644 --- a/spec/v3/service_index_spec.rb +++ b/spec/v3/service_index_spec.rb @@ -9,7 +9,7 @@ describe Travis::API::V3::ServiceIndex do describe "custom json entry point" do let(:expected_resources) {{ "repository" => { - "find" => [{"request-method"=>"GET", "uri-template"=>"#{path}repo/{id}"}] + "find" => [{"request-method"=>"GET", "uri-template"=>"#{path}repo/{repository.id}"}] } }}