v3: prefix template variables with entity type (like in json-api)

This commit is contained in:
Konstantin Haase 2015-01-22 16:27:45 +01:00
parent b2ba9383eb
commit c9fc88fa9a
4 changed files with 7 additions and 6 deletions

View File

@ -4,7 +4,7 @@ module Travis::API::V3
extend DSL extend DSL
resource :repository do resource :repository do
route '/repo/:id' route '/repo/{repository.id}'
get :find_repository get :find_repository
end end
end end

View File

@ -4,11 +4,12 @@ module Travis::API::V3
@required_params ||= [] @required_params ||= []
end end
def self.params(*list, optional: false) def self.params(*list, optional: false, prefix: nil)
@params ||= [] @params ||= []
list.each do |param| list.each do |param|
param = param.to_s method = param = param.to_s
define_method(param) { params[param] } param = "#{prefix}.#{method}" if prefix
define_method(method) { params[param] }
required_params << param unless optional required_params << param unless optional
@params << param @params << param
end end

View File

@ -1,6 +1,6 @@
module Travis::API::V3 module Travis::API::V3
class Services::FindRepository < Service class Services::FindRepository < Service
params :id, :github_id, :slug, optional: true params :id, :github_id, :slug, optional: true, prefix: :repository
def run def run
raise NotFound, :repository unless repository and access_control.visible? repository raise NotFound, :repository unless repository and access_control.visible? repository

View File

@ -9,7 +9,7 @@ describe Travis::API::V3::ServiceIndex do
describe "custom json entry point" do describe "custom json entry point" do
let(:expected_resources) {{ let(:expected_resources) {{
"repository" => { "repository" => {
"find" => [{"request-method"=>"GET", "uri-template"=>"#{path}repo/{id}"}] "find" => [{"request-method"=>"GET", "uri-template"=>"#{path}repo/{repository.id}"}]
} }
}} }}