demarches-normaliennes/app/serializers/procedure_serializer.rb

56 lines
1.3 KiB
Ruby
Raw Normal View History

2015-12-21 17:51:49 +01:00
class ProcedureSerializer < ActiveModel::Serializer
include Rails.application.routes.url_helpers
2016-01-12 15:11:42 +01:00
attribute :libelle, key: :label
2015-12-21 17:51:49 +01:00
attributes :id,
2017-06-12 13:49:51 +02:00
:description,
:organisation,
:direction,
:archived_at,
2017-06-12 13:49:51 +02:00
:geographic_information,
:total_dossier,
2018-10-22 19:23:30 +02:00
:link,
:state
2016-01-12 15:11:42 +01:00
has_one :geographic_information, serializer: ModuleApiCartoSerializer
2016-08-02 16:13:15 +02:00
has_many :types_de_champ, serializer: TypeDeChampSerializer
has_many :types_de_champ_private, serializer: TypeDeChampSerializer
has_many :types_de_piece_justificative
def archived_at
object.archived_at&.in_time_zone('UTC')
end
def link
if object.path.present?
if object.brouillon_avec_lien?
2018-10-30 12:00:58 +01:00
commencer_test_url(path: object.path)
else
2018-10-30 12:00:58 +01:00
commencer_url(path: object.path)
end
end
end
2018-10-22 19:23:30 +02:00
def state
object.aasm_state
end
def geographic_information
2018-11-27 15:55:14 +01:00
if object.expose_legacy_carto_api?
object.module_api_carto
else
ModuleAPICarto.new(procedure: object)
end
end
def types_de_champ
object.types_de_champ.reject { |c| c.old_pj.present? }
end
def types_de_piece_justificative
ActiveModelSerializers::SerializableResource.new(object.types_de_piece_justificative).serializable_hash +
PiecesJustificativesService.serialize_types_de_champ_as_type_pj(object)
end
2015-12-21 17:51:49 +01:00
end