Merge pull request #5063 from betagouv/5062-effectifs-api

5062 : add effectif mensuel to graphql api
This commit is contained in:
krichtof 2020-04-22 10:32:58 +02:00 committed by GitHub
commit 24a14262e7
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
14 changed files with 65 additions and 13 deletions

View file

@ -686,10 +686,24 @@ enum DossierState {
sans_suite sans_suite
} }
type Effectif {
"""
Année de l'effectif mensuel
"""
annee: String!
"""
Mois de l'effectif mensuel
"""
mois: String!
nb: Float!
}
type Entreprise { type Entreprise {
capitalSocial: BigInt! capitalSocial: BigInt!
codeEffectifEntreprise: String! codeEffectifEntreprise: String!
dateCreation: ISO8601Date! dateCreation: ISO8601Date!
effectifs: [Effectif!]!
formeJuridique: String! formeJuridique: String!
formeJuridiqueCode: String! formeJuridiqueCode: String!
inlineAdresse: String! inlineAdresse: String!

View file

@ -1,6 +1,12 @@
module Types module Types
class PersonneMoraleType < Types::BaseObject class PersonneMoraleType < Types::BaseObject
class EntrepriseType < 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 :nb, Float, null: false
end
field :siren, String, null: false field :siren, String, null: false
field :capital_social, GraphQL::Types::BigInt, null: false field :capital_social, GraphQL::Types::BigInt, null: false
field :numero_tva_intracommunautaire, String, null: false field :numero_tva_intracommunautaire, String, null: false
@ -10,10 +16,23 @@ module Types
field :raison_sociale, String, null: false field :raison_sociale, String, null: false
field :siret_siege_social, String, null: false field :siret_siege_social, String, null: false
field :code_effectif_entreprise, String, null: false field :code_effectif_entreprise, String, null: false
field :effectifs, [EffectifType], null: false
field :date_creation, GraphQL::Types::ISO8601Date, null: false field :date_creation, GraphQL::Types::ISO8601Date, null: false
field :nom, String, null: false field :nom, String, null: false
field :prenom, String, null: false field :prenom, String, null: false
field :inline_adresse, String, null: false field :inline_adresse, String, null: false
def effectifs
if object.effectif_mensuel.present?
[
{
mois: object.effectif_mois,
annee: object.effectif_annee,
nb: object.effectif_mensuel
}
]
end
end
end end
class AssociationType < Types::BaseObject class AssociationType < Types::BaseObject

View file

@ -131,8 +131,8 @@ module ApplicationHelper
end end
def try_format_mois_effectif(etablissement) def try_format_mois_effectif(etablissement)
if etablissement.effectif_mois.present? && etablissement.effectif_annee.present? if etablissement.entreprise_effectif_mois.present? && etablissement.entreprise_effectif_annee.present?
[etablissement.effectif_mois, etablissement.effectif_annee].join('/') [etablissement.entreprise_effectif_mois, etablissement.entreprise_effectif_annee].join('/')
else else
'' ''
end end

View file

@ -15,9 +15,9 @@ class ApiEntreprise::EffectifsAdapter < ApiEntreprise::Adapter
def process_params def process_params
if data_source[:effectifs_mensuels].present? if data_source[:effectifs_mensuels].present?
{ {
effectif_mensuel: data_source[:effectifs_mensuels], entreprise_effectif_mensuel: data_source[:effectifs_mensuels],
effectif_mois: @mois, entreprise_effectif_mois: @mois,
effectif_annee: @annee entreprise_effectif_annee: @annee
} }
else else
{} {}

View file

@ -12,6 +12,9 @@ class Entreprise < Hashie::Dash
property :raison_sociale property :raison_sociale
property :siret_siege_social property :siret_siege_social
property :code_effectif_entreprise property :code_effectif_entreprise
property :effectif_mois
property :effectif_annee
property :effectif_mensuel
property :date_creation property :date_creation
property :nom property :nom
property :prenom property :prenom

View file

@ -102,6 +102,9 @@ class Etablissement < ApplicationRecord
raison_sociale: entreprise_raison_sociale, raison_sociale: entreprise_raison_sociale,
siret_siege_social: entreprise_siret_siege_social, siret_siege_social: entreprise_siret_siege_social,
code_effectif_entreprise: entreprise_code_effectif_entreprise, code_effectif_entreprise: entreprise_code_effectif_entreprise,
effectif_mensuel: entreprise_effectif_mensuel,
effectif_mois: entreprise_effectif_mois,
effectif_annee: entreprise_effectif_annee,
date_creation: entreprise_date_creation, date_creation: entreprise_date_creation,
nom: entreprise_nom, nom: entreprise_nom,
prenom: entreprise_prenom, prenom: entreprise_prenom,

View file

@ -8,6 +8,9 @@ class EntrepriseSerializer < ActiveModel::Serializer
:raison_sociale, :raison_sociale,
:siret_siege_social, :siret_siege_social,
:code_effectif_entreprise, :code_effectif_entreprise,
:effectif_mois,
:effectif_annee,
:effectif_mensuel,
:date_creation, :date_creation,
:nom, :nom,
:prenom :prenom

View file

@ -32,7 +32,7 @@
%th.libelle %th.libelle
Effectif mensuel Effectif mensuel
= try_format_mois_effectif(etablissement) = try_format_mois_effectif(etablissement)
%td= etablissement.effectif_mensuel %td= etablissement.entreprise_effectif_mensuel
%tr %tr
%th.libelle Effectif de l'organisation : %th.libelle Effectif de l'organisation :
%td= effectif(etablissement) %td= effectif(etablissement)

View file

@ -0,0 +1,7 @@
class RenameEffectifMensuel < ActiveRecord::Migration[5.2]
def change
rename_column :etablissements, :effectif_mensuel, :entreprise_effectif_mensuel
rename_column :etablissements, :effectif_mois, :entreprise_effectif_mois
rename_column :etablissements, :effectif_annee, :entreprise_effectif_annee
end
end

View file

@ -10,7 +10,7 @@
# #
# It's strongly recommended that you check this file into your version control system. # It's strongly recommended that you check this file into your version control system.
ActiveRecord::Schema.define(version: 2020_04_09_075320) do ActiveRecord::Schema.define(version: 2020_04_21_174642) do
# These are extensions that must be enabled in order to support this database # These are extensions that must be enabled in order to support this database
enable_extension "plpgsql" enable_extension "plpgsql"
@ -310,9 +310,9 @@ ActiveRecord::Schema.define(version: 2020_04_09_075320) do
t.datetime "created_at" t.datetime "created_at"
t.datetime "updated_at" t.datetime "updated_at"
t.boolean "diffusable_commercialement" t.boolean "diffusable_commercialement"
t.string "effectif_mois" t.string "entreprise_effectif_mois"
t.string "effectif_annee" t.string "entreprise_effectif_annee"
t.decimal "effectif_mensuel" t.decimal "entreprise_effectif_mensuel"
t.index ["dossier_id"], name: "index_etablissements_on_dossier_id" t.index ["dossier_id"], name: "index_etablissements_on_dossier_id"
end end

View file

@ -197,6 +197,9 @@ describe API::V1::DossiersController do
:raison_sociale, :raison_sociale,
:siret_siege_social, :siret_siege_social,
:code_effectif_entreprise, :code_effectif_entreprise,
:effectif_mois,
:effectif_annee,
:effectif_mensuel,
:date_creation, :date_creation,
:nom, :nom,
:prenom :prenom

View file

@ -327,7 +327,7 @@ describe Users::DossiersController, type: :controller do
expect(dossier.etablissement.entreprise).to be_present expect(dossier.etablissement.entreprise).to be_present
expect(dossier.etablissement.exercices).to be_present expect(dossier.etablissement.exercices).to be_present
expect(dossier.etablissement.association?).to be(true) expect(dossier.etablissement.association?).to be(true)
expect(dossier.etablissement.effectif_mensuel).to be_present expect(dossier.etablissement.entreprise_effectif_mensuel).to be_present
end end
end end
end end

View file

@ -20,7 +20,7 @@ describe ApiEntreprise::EffectifsAdapter do
end end
it "renvoie les effectifs du mois demandé" do it "renvoie les effectifs du mois demandé" do
expect(subject[:effectif_mensuel]).to eq(100.5) expect(subject[:entreprise_effectif_mensuel]).to eq(100.5)
end end
end end
end end

View file

@ -46,7 +46,7 @@ describe ApiEntrepriseService do
expect(result[:siret]).to eq(siret) expect(result[:siret]).to eq(siret)
expect(result[:association_rna]).to eq(rna) expect(result[:association_rna]).to eq(rna)
expect(result[:exercices_attributes]).to_not be_empty expect(result[:exercices_attributes]).to_not be_empty
expect(result[:effectif_mensuel]).to eq(effectif_mensuel) expect(result[:entreprise_effectif_mensuel]).to eq(effectif_mensuel)
end end
end end