From 792e755af934ebba366ba7914305c606e486a8e3 Mon Sep 17 00:00:00 2001 From: Christophe Robillard Date: Wed, 22 Apr 2020 19:00:25 +0200 Subject: [PATCH] expose effectif_annuel dans api graphql --- app/graphql/schema.graphql | 21 +++++++------- app/graphql/types/personne_morale_type.rb | 28 +++++++++++-------- app/models/entreprise.rb | 2 ++ app/models/etablissement.rb | 2 ++ app/serializers/entreprise_serializer.rb | 2 ++ .../api/v1/dossiers_controller_spec.rb | 2 ++ 6 files changed, 36 insertions(+), 21 deletions(-) diff --git a/app/graphql/schema.graphql b/app/graphql/schema.graphql index 6b0b895f4..c1dea88f4 100644 --- a/app/graphql/schema.graphql +++ b/app/graphql/schema.graphql @@ -687,23 +687,24 @@ enum DossierState { } type Effectif { - """ - Année de l'effectif mensuel - """ - annee: String! - - """ - Mois de l'effectif mensuel - """ - mois: String! nb: Float! + periode: String! } type Entreprise { capitalSocial: BigInt! codeEffectifEntreprise: String! dateCreation: ISO8601Date! - effectifs: [Effectif!]! + + """ + effectif moyen d'une année + """ + effectifAnnuel: Effectif + + """ + effectif pour un mois donné + """ + effectifMensuel: Effectif formeJuridique: String! formeJuridiqueCode: String! inlineAdresse: String! diff --git a/app/graphql/types/personne_morale_type.rb b/app/graphql/types/personne_morale_type.rb index 5bc5f176b..627145cb0 100644 --- a/app/graphql/types/personne_morale_type.rb +++ b/app/graphql/types/personne_morale_type.rb @@ -2,8 +2,7 @@ module Types class PersonneMoraleType < Types::BaseObject class EntrepriseType < Types::BaseObject class EffectifType < Types::BaseObject - field :mois, String, null: false, description: "Mois de l'effectif mensuel" - field :annee, String, null: false, description: "Année de l'effectif mensuel" + field :periode, String, null: false field :nb, Float, null: false end @@ -16,21 +15,28 @@ module Types field :raison_sociale, String, null: false field :siret_siege_social, String, null: false field :code_effectif_entreprise, String, null: false - field :effectifs, [EffectifType], null: false + field :effectif_mensuel, EffectifType, null: true, description: "effectif pour un mois donné" + field :effectif_annuel, EffectifType, null: true, description: "effectif moyen d'une année" field :date_creation, GraphQL::Types::ISO8601Date, null: false field :nom, String, null: false field :prenom, String, null: false field :inline_adresse, String, null: false - def effectifs + def effectif_mensuel if object.effectif_mensuel.present? - [ - { - mois: object.effectif_mois, - annee: object.effectif_annee, - nb: object.effectif_mensuel - } - ] + { + periode: [object.effectif_mois, object.effectif_annee].join('/'), + nb: object.effectif_mensuel + } + end + end + + def effectif_annuel + if object.effectif_annuel.present? + { + periode: object.effectif_annuel_annee, + nb: object.effectif_annuel + } end end end diff --git a/app/models/entreprise.rb b/app/models/entreprise.rb index 5fb6cf719..5808b91e9 100644 --- a/app/models/entreprise.rb +++ b/app/models/entreprise.rb @@ -15,6 +15,8 @@ class Entreprise < Hashie::Dash property :effectif_mois property :effectif_annee property :effectif_mensuel + property :effectif_annuel + property :effectif_annuel_annee property :date_creation property :nom property :prenom diff --git a/app/models/etablissement.rb b/app/models/etablissement.rb index 4d3236e80..5b57331a2 100644 --- a/app/models/etablissement.rb +++ b/app/models/etablissement.rb @@ -105,6 +105,8 @@ class Etablissement < ApplicationRecord effectif_mensuel: entreprise_effectif_mensuel, effectif_mois: entreprise_effectif_mois, effectif_annee: entreprise_effectif_annee, + effectif_annuel: entreprise_effectif_annuel, + effectif_annuel_annee: entreprise_effectif_annuel_annee, date_creation: entreprise_date_creation, nom: entreprise_nom, prenom: entreprise_prenom, diff --git a/app/serializers/entreprise_serializer.rb b/app/serializers/entreprise_serializer.rb index 70437d8c8..602f9e69b 100644 --- a/app/serializers/entreprise_serializer.rb +++ b/app/serializers/entreprise_serializer.rb @@ -11,6 +11,8 @@ class EntrepriseSerializer < ActiveModel::Serializer :effectif_mois, :effectif_annee, :effectif_mensuel, + :effectif_annuel, + :effectif_annuel_annee, :date_creation, :nom, :prenom diff --git a/spec/controllers/api/v1/dossiers_controller_spec.rb b/spec/controllers/api/v1/dossiers_controller_spec.rb index a329464ac..1bc8b195b 100644 --- a/spec/controllers/api/v1/dossiers_controller_spec.rb +++ b/spec/controllers/api/v1/dossiers_controller_spec.rb @@ -200,6 +200,8 @@ describe API::V1::DossiersController do :effectif_mois, :effectif_annee, :effectif_mensuel, + :effectif_annuel, + :effectif_annuel_annee, :date_creation, :nom, :prenom