From 51bcdec77a72c2f8a9ab637ab6884f7ff1574243 Mon Sep 17 00:00:00 2001 From: carlad Date: Tue, 25 Aug 2015 17:50:45 +0200 Subject: [PATCH] add @representation attribute to collections and update specs --- lib/travis/api/v3/renderer/collection_renderer.rb | 7 ++++++- spec/v3/services/accounts/for_current_user_spec.rb | 1 + spec/v3/services/builds/find_spec.rb | 2 ++ spec/v3/services/organizations/for_current_user_spec.rb | 1 + spec/v3/services/owner/repositories_spec.rb | 1 + spec/v3/services/repositories/for_current_user_spec.rb | 1 + 6 files changed, 12 insertions(+), 1 deletion(-) diff --git a/lib/travis/api/v3/renderer/collection_renderer.rb b/lib/travis/api/v3/renderer/collection_renderer.rb index cd415343..8778d228 100644 --- a/lib/travis/api/v3/renderer/collection_renderer.rb +++ b/lib/travis/api/v3/renderer/collection_renderer.rb @@ -30,6 +30,7 @@ module Travis::API::V3 def fields fields = { :"@type" => type } fields[:@href] = href if href + fields[:@representation] = representation fields[:@pagination] = pagination_info if meta_data.include? :pagination fields end @@ -44,13 +45,17 @@ module Travis::API::V3 result = fields included = self.included.dup 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 rendered end result end + def representation + :standard + end + def render_entry(entry, **options) Renderer.render_value(entry, **options) end diff --git a/spec/v3/services/accounts/for_current_user_spec.rb b/spec/v3/services/accounts/for_current_user_spec.rb index c5bda2ae..823e2361 100644 --- a/spec/v3/services/accounts/for_current_user_spec.rb +++ b/spec/v3/services/accounts/for_current_user_spec.rb @@ -20,6 +20,7 @@ describe Travis::API::V3::Services::Accounts::ForCurrentUser do example { expect(JSON.load(body)).to be == { "@type" => "accounts", "@href" => "/v3/accounts", + "@representation" => "standard", "accounts" => [{ "@type" => "account", "@representation" =>"standard", diff --git a/spec/v3/services/builds/find_spec.rb b/spec/v3/services/builds/find_spec.rb index 7d97559c..c882d78a 100644 --- a/spec/v3/services/builds/find_spec.rb +++ b/spec/v3/services/builds/find_spec.rb @@ -27,6 +27,7 @@ describe Travis::API::V3::Services::Builds::Find do example { expect(parsed_body).to be == { "@type" => "builds", "@href" => "/v3/repo/#{repo.id}/builds?limit=1", + "@representation" => "standard", "@pagination" => { "limit" => 1, "offset" => 0, @@ -94,6 +95,7 @@ describe Travis::API::V3::Services::Builds::Find do example { expect(parsed_body).to be == { "@type" => "builds", "@href" => "/v3/repo/#{repo.id}/builds?limit=1", + "@representation" => "standard", "@pagination" => { "limit" => 1, "offset" => 0, diff --git a/spec/v3/services/organizations/for_current_user_spec.rb b/spec/v3/services/organizations/for_current_user_spec.rb index fd448f31..04e5dd0e 100644 --- a/spec/v3/services/organizations/for_current_user_spec.rb +++ b/spec/v3/services/organizations/for_current_user_spec.rb @@ -20,6 +20,7 @@ describe Travis::API::V3::Services::Organizations::ForCurrentUser do example { expect(JSON.load(body)).to be == { "@type" => "organizations", "@href" => "/v3/orgs", + "@representation" => "standard", "organizations" => [{ "@type" => "organization", "@href" => "/v3/org/#{org.id}", diff --git a/spec/v3/services/owner/repositories_spec.rb b/spec/v3/services/owner/repositories_spec.rb index 836b091f..450a5abd 100644 --- a/spec/v3/services/owner/repositories_spec.rb +++ b/spec/v3/services/owner/repositories_spec.rb @@ -15,6 +15,7 @@ describe Travis::API::V3::Services::Owner::Repositories do example { expect(JSON.load(body)).to be == { "@type" => "repositories", "@href" => "/v3/owner/svenfuchs/repos", + "@representation" => "standard", "repositories" => [{ "@type" => "repository", "@href" => "/v3/repo/#{repo.id}", diff --git a/spec/v3/services/repositories/for_current_user_spec.rb b/spec/v3/services/repositories/for_current_user_spec.rb index 5d7dead9..202e4253 100644 --- a/spec/v3/services/repositories/for_current_user_spec.rb +++ b/spec/v3/services/repositories/for_current_user_spec.rb @@ -15,6 +15,7 @@ describe Travis::API::V3::Services::Repositories::ForCurrentUser do example { expect(JSON.load(body)).to be == { "@type" => "repositories", "@href" => "/v3/repos", + "@representation" => "standard", "repositories" => [{ "@type" => "repository", "@href" => "/v3/repo/#{repo.id}",