diff options
Diffstat (limited to 'lib/api')
-rw-r--r-- | lib/api/entities.rb | 30 | ||||
-rw-r--r-- | lib/api/entities/feature.rb | 22 | ||||
-rw-r--r-- | lib/api/entities/feature_gate.rb | 10 | ||||
-rw-r--r-- | lib/api/entities/impersonation_token.rb | 9 | ||||
-rw-r--r-- | lib/api/entities/impersonation_token_with_token.rb | 9 |
5 files changed, 50 insertions, 30 deletions
diff --git a/lib/api/entities.rb b/lib/api/entities.rb index 3435d1d6f11..c0970b4cd6c 100644 --- a/lib/api/entities.rb +++ b/lib/api/entities.rb @@ -169,36 +169,6 @@ module API expose :last_pipeline, using: Entities::PipelineBasic expose :variables, using: Entities::Variable end - - class ImpersonationToken < PersonalAccessToken - expose :impersonation - end - - class ImpersonationTokenWithToken < PersonalAccessTokenWithToken - expose :impersonation - end - - class FeatureGate < Grape::Entity - expose :key - expose :value - end - - class Feature < Grape::Entity - expose :name - expose :state - expose :gates, using: FeatureGate do |model| - model.gates.map do |gate| - value = model.gate_values[gate.key] - - # By default all gate values are populated. Only show relevant ones. - if (value.is_a?(Integer) && value.zero?) || (value.is_a?(Set) && value.empty?) - next - end - - { key: gate.key, value: value } - end.compact - end - end end end diff --git a/lib/api/entities/feature.rb b/lib/api/entities/feature.rb new file mode 100644 index 00000000000..3c9182340ea --- /dev/null +++ b/lib/api/entities/feature.rb @@ -0,0 +1,22 @@ +# frozen_string_literal: true + +module API + module Entities + class Feature < Grape::Entity + expose :name + expose :state + expose :gates, using: Entities::FeatureGate do |model| + model.gates.map do |gate| + value = model.gate_values[gate.key] + + # By default all gate values are populated. Only show relevant ones. + if (value.is_a?(Integer) && value.zero?) || (value.is_a?(Set) && value.empty?) + next + end + + { key: gate.key, value: value } + end.compact + end + end + end +end diff --git a/lib/api/entities/feature_gate.rb b/lib/api/entities/feature_gate.rb new file mode 100644 index 00000000000..bea9c9474b3 --- /dev/null +++ b/lib/api/entities/feature_gate.rb @@ -0,0 +1,10 @@ +# frozen_string_literal: true + +module API + module Entities + class FeatureGate < Grape::Entity + expose :key + expose :value + end + end +end diff --git a/lib/api/entities/impersonation_token.rb b/lib/api/entities/impersonation_token.rb new file mode 100644 index 00000000000..9ee8f8bf77b --- /dev/null +++ b/lib/api/entities/impersonation_token.rb @@ -0,0 +1,9 @@ +# frozen_string_literal: true + +module API + module Entities + class ImpersonationToken < Entities::PersonalAccessToken + expose :impersonation + end + end +end diff --git a/lib/api/entities/impersonation_token_with_token.rb b/lib/api/entities/impersonation_token_with_token.rb new file mode 100644 index 00000000000..4904f107628 --- /dev/null +++ b/lib/api/entities/impersonation_token_with_token.rb @@ -0,0 +1,9 @@ +# frozen_string_literal: true + +module API + module Entities + class ImpersonationTokenWithToken < Entities::PersonalAccessTokenWithToken + expose :impersonation + end + end +end |