class GeoAreaSerializer < ActiveModel::Serializer attributes :geometry, :source, :geo_reference_id attribute :surface_intersection, if: :include_cadastre? attribute :surface_parcelle, if: :include_cadastre? attribute :numero, if: :include_cadastre? attribute :feuille, if: :include_cadastre? attribute :section, if: :include_cadastre? attribute :code_dep, if: :include_cadastre? attribute :nom_com, if: :include_cadastre? attribute :code_com, if: :include_cadastre? attribute :code_arr, if: :include_cadastre? attribute :code, if: :include_quartier_prioritaire? attribute :nom, if: :include_quartier_prioritaire? attribute :commune, if: :include_quartier_prioritaire? attribute :culture, if: :include_parcelle_agricole? attribute :code_culture, if: :include_parcelle_agricole? attribute :surface, if: :include_parcelle_agricole? attribute :bio, if: :include_parcelle_agricole? def include_cadastre? object.source == GeoArea.sources.fetch(:cadastre) end def include_quartier_prioritaire? object.source == GeoArea.sources.fetch(:quartier_prioritaire) end def include_parcelle_agricole? object.source == GeoArea.sources.fetch(:parcelle_agricole) end end