v3: one shared superclass for org/user renderers
This commit is contained in:
parent
3cac519143
commit
aeb5046298
lib/travis/api/v3/renderer
11
lib/travis/api/v3/renderer/account.rb
Normal file
11
lib/travis/api/v3/renderer/account.rb
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
require 'travis/api/v3/renderer/model_renderer'
|
||||||
|
require 'travis/api/v3/renderer/avatar_url'
|
||||||
|
|
||||||
|
module Travis::API::V3
|
||||||
|
class Renderer::Account < Renderer::ModelRenderer
|
||||||
|
include Renderer::AvatarURL
|
||||||
|
|
||||||
|
representation(:minimal, :id, :login)
|
||||||
|
representation(:standard, :id, :login, :name, :github_id, :avatar_url)
|
||||||
|
end
|
||||||
|
end
|
|
@ -16,15 +16,18 @@ module Travis::API::V3
|
||||||
class_eval "def #{field}; @model.#{field}; end" unless method_defined?(field)
|
class_eval "def #{field}; @model.#{field}; end" unless method_defined?(field)
|
||||||
available_attributes << field.to_s
|
available_attributes << field.to_s
|
||||||
end
|
end
|
||||||
representations[name] = fields
|
representations[name] ||= []
|
||||||
|
representations[name] += fields
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@representations = {}
|
||||||
def self.representations
|
def self.representations
|
||||||
@representations ||= {}
|
@representations ||= superclass.representations.dup
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@available_attributes = Set.new
|
||||||
def self.available_attributes
|
def self.available_attributes
|
||||||
@available_attributes ||= Set.new
|
@available_attributes ||= superclass.available_attributes.dup
|
||||||
end
|
end
|
||||||
|
|
||||||
def self.render(model, representation = :standard, **options)
|
def self.render(model, representation = :standard, **options)
|
||||||
|
|
|
@ -1,10 +1,6 @@
|
||||||
require 'travis/api/v3/renderer/model_renderer'
|
require 'travis/api/v3/renderer/model_renderer'
|
||||||
|
|
||||||
module Travis::API::V3
|
module Travis::API::V3
|
||||||
class Renderer::Organization < Renderer::ModelRenderer
|
class Renderer::Organization < Renderer::Account
|
||||||
include Renderer::AvatarURL
|
|
||||||
|
|
||||||
representation(:minimal, :id, :login)
|
|
||||||
representation(:standard, :id, :login, :name, :github_id, :avatar_url)
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -1,10 +1,7 @@
|
||||||
require 'travis/api/v3/renderer/model_renderer'
|
require 'travis/api/v3/renderer/model_renderer'
|
||||||
|
|
||||||
module Travis::API::V3
|
module Travis::API::V3
|
||||||
class Renderer::User < Renderer::ModelRenderer
|
class Renderer::User < Renderer::Account
|
||||||
include Renderer::AvatarURL
|
representation(:standard, :is_syncing, :synced_at)
|
||||||
|
|
||||||
representation(:minimal, :id, :login)
|
|
||||||
representation(:standard, :id, :login, :name, :github_id, :avatar_url, :is_syncing, :synced_at)
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in New Issue
Block a user