26 lines
745 B
Ruby
26 lines
745 B
Ruby
|
# frozen_string_literal: true
|
||
|
|
||
|
module API
|
||
|
module Entities
|
||
|
class ProjectIntegration < Entities::ProjectIntegrationBasic
|
||
|
# Expose serialized properties
|
||
|
expose :properties do |integration, options|
|
||
|
# TODO: Simplify as part of https://gitlab.com/gitlab-org/gitlab/issues/29404
|
||
|
|
||
|
attributes =
|
||
|
if integration.data_fields_present?
|
||
|
integration.data_fields.as_json.keys
|
||
|
else
|
||
|
integration.properties.keys
|
||
|
end
|
||
|
|
||
|
attributes &= integration.api_field_names
|
||
|
|
||
|
attributes.each_with_object({}) do |attribute, hash|
|
||
|
hash[attribute] = integration.public_send(attribute) # rubocop:disable GitlabSecurity/PublicSend
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
end
|