add @representation attribute to collections and update specs

This commit is contained in:
carlad 2015-08-25 17:50:45 +02:00
parent 720d8aa284
commit 51bcdec77a
6 changed files with 12 additions and 1 deletions

View File

@ -30,6 +30,7 @@ module Travis::API::V3
def fields def fields
fields = { :"@type" => type } fields = { :"@type" => type }
fields[:@href] = href if href fields[:@href] = href if href
fields[:@representation] = representation
fields[:@pagination] = pagination_info if meta_data.include? :pagination fields[:@pagination] = pagination_info if meta_data.include? :pagination
fields fields
end end
@ -44,13 +45,17 @@ module Travis::API::V3
result = fields result = fields
included = self.included.dup included = self.included.dup
result[collection_key] = list.map do |entry| result[collection_key] = list.map do |entry|
rendered = render_entry(entry, included: included, mode: :standard, **options) rendered = render_entry(entry, included: included, mode: representation, **options)
included << entry included << entry
rendered rendered
end end
result result
end end
def representation
:standard
end
def render_entry(entry, **options) def render_entry(entry, **options)
Renderer.render_value(entry, **options) Renderer.render_value(entry, **options)
end end

View File

@ -20,6 +20,7 @@ describe Travis::API::V3::Services::Accounts::ForCurrentUser do
example { expect(JSON.load(body)).to be == { example { expect(JSON.load(body)).to be == {
"@type" => "accounts", "@type" => "accounts",
"@href" => "/v3/accounts", "@href" => "/v3/accounts",
"@representation" => "standard",
"accounts" => [{ "accounts" => [{
"@type" => "account", "@type" => "account",
"@representation" =>"standard", "@representation" =>"standard",

View File

@ -27,6 +27,7 @@ describe Travis::API::V3::Services::Builds::Find do
example { expect(parsed_body).to be == { example { expect(parsed_body).to be == {
"@type" => "builds", "@type" => "builds",
"@href" => "/v3/repo/#{repo.id}/builds?limit=1", "@href" => "/v3/repo/#{repo.id}/builds?limit=1",
"@representation" => "standard",
"@pagination" => { "@pagination" => {
"limit" => 1, "limit" => 1,
"offset" => 0, "offset" => 0,
@ -94,6 +95,7 @@ describe Travis::API::V3::Services::Builds::Find do
example { expect(parsed_body).to be == { example { expect(parsed_body).to be == {
"@type" => "builds", "@type" => "builds",
"@href" => "/v3/repo/#{repo.id}/builds?limit=1", "@href" => "/v3/repo/#{repo.id}/builds?limit=1",
"@representation" => "standard",
"@pagination" => { "@pagination" => {
"limit" => 1, "limit" => 1,
"offset" => 0, "offset" => 0,

View File

@ -20,6 +20,7 @@ describe Travis::API::V3::Services::Organizations::ForCurrentUser do
example { expect(JSON.load(body)).to be == { example { expect(JSON.load(body)).to be == {
"@type" => "organizations", "@type" => "organizations",
"@href" => "/v3/orgs", "@href" => "/v3/orgs",
"@representation" => "standard",
"organizations" => [{ "organizations" => [{
"@type" => "organization", "@type" => "organization",
"@href" => "/v3/org/#{org.id}", "@href" => "/v3/org/#{org.id}",

View File

@ -15,6 +15,7 @@ describe Travis::API::V3::Services::Owner::Repositories do
example { expect(JSON.load(body)).to be == { example { expect(JSON.load(body)).to be == {
"@type" => "repositories", "@type" => "repositories",
"@href" => "/v3/owner/svenfuchs/repos", "@href" => "/v3/owner/svenfuchs/repos",
"@representation" => "standard",
"repositories" => [{ "repositories" => [{
"@type" => "repository", "@type" => "repository",
"@href" => "/v3/repo/#{repo.id}", "@href" => "/v3/repo/#{repo.id}",

View File

@ -15,6 +15,7 @@ describe Travis::API::V3::Services::Repositories::ForCurrentUser do
example { expect(JSON.load(body)).to be == { example { expect(JSON.load(body)).to be == {
"@type" => "repositories", "@type" => "repositories",
"@href" => "/v3/repos", "@href" => "/v3/repos",
"@representation" => "standard",
"repositories" => [{ "repositories" => [{
"@type" => "repository", "@type" => "repository",
"@href" => "/v3/repo/#{repo.id}", "@href" => "/v3/repo/#{repo.id}",