Add accompagnateurs emails in API
This commit is contained in:
parent
bf67b3f7ad
commit
40d897f538
7 changed files with 52 additions and 40 deletions
|
@ -246,8 +246,8 @@ class Dossier < ActiveRecord::Base
|
|||
return headers
|
||||
end
|
||||
|
||||
def followers_gestionnaires_emails
|
||||
follows.includes(:gestionnaire).map { |f| f.gestionnaire }.pluck(:email).join(' ')
|
||||
def followers_gestionnaires
|
||||
follows.includes(:gestionnaire).map(&:gestionnaire)
|
||||
end
|
||||
|
||||
def reset!
|
||||
|
|
|
@ -8,7 +8,8 @@ class DossierSerializer < ActiveModel::Serializer
|
|||
:simplified_state,
|
||||
:initiated_at,
|
||||
:received_at,
|
||||
:processed_at
|
||||
:processed_at,
|
||||
:accompagnateurs
|
||||
|
||||
has_one :entreprise
|
||||
has_one :etablissement
|
||||
|
@ -22,4 +23,8 @@ class DossierSerializer < ActiveModel::Serializer
|
|||
def simplified_state
|
||||
object.decorate.display_state
|
||||
end
|
||||
|
||||
def accompagnateurs
|
||||
object.followers_gestionnaires.pluck(:email)
|
||||
end
|
||||
end
|
||||
|
|
|
@ -9,7 +9,7 @@ class DossierTableExportSerializer < ActiveModel::Serializer
|
|||
:received_at,
|
||||
:processed_at
|
||||
|
||||
attribute :followers_gestionnaires_emails, key: :emails_accompagnateurs
|
||||
attribute :emails_accompagnateurs
|
||||
|
||||
attributes :individual_gender,
|
||||
:individual_prenom,
|
||||
|
@ -31,4 +31,8 @@ class DossierTableExportSerializer < ActiveModel::Serializer
|
|||
def individual_gender
|
||||
object.individual.try(:gender)
|
||||
end
|
||||
|
||||
def emails_accompagnateurs
|
||||
object.followers_gestionnaires.pluck(:email).join(' ')
|
||||
end
|
||||
end
|
||||
|
|
|
@ -50,6 +50,9 @@
|
|||
"initiated_at": "2017-04-11T12:00:12.000Z",
|
||||
"received_at": null,
|
||||
"processed_at": null,
|
||||
"accompagnateurs": [
|
||||
"gestionnaire@apientreprise.fr"
|
||||
],
|
||||
"entreprise": {
|
||||
"siren": "440117620",
|
||||
"capital_social": 537100000,
|
||||
|
|
|
@ -115,7 +115,7 @@ describe API::V1::DossiersController do
|
|||
let!(:dossier) { Timecop.freeze(date_creation) { create(:dossier, :with_entreprise, procedure: procedure) } }
|
||||
let(:dossier_id) { dossier.id }
|
||||
let(:body) { JSON.parse(retour.body, symbolize_names: true) }
|
||||
let(:field_list) { [:id, :created_at, :updated_at, :archived, :mandataire_social, :entreprise, :etablissement, :cerfa, :types_de_piece_justificative, :pieces_justificatives, :champs, :champs_private, :commentaires, :state, :simplified_state, :initiated_at, :processed_at, :received_at] }
|
||||
let(:field_list) { [:id, :created_at, :updated_at, :archived, :mandataire_social, :entreprise, :etablissement, :cerfa, :types_de_piece_justificative, :pieces_justificatives, :champs, :champs_private, :commentaires, :state, :simplified_state, :initiated_at, :processed_at, :received_at, :accompagnateurs] }
|
||||
subject { body[:dossier] }
|
||||
|
||||
it 'return REST code 200', :show_in_doc do
|
||||
|
|
|
@ -572,7 +572,7 @@ describe Dossier do
|
|||
it { expect(subject[6]).to eq(date1) }
|
||||
it { expect(subject[7]).to eq(date2) }
|
||||
it { expect(subject[8]).to eq(date3) }
|
||||
it { expect(subject[9]).to eq(dossier.followers_gestionnaires_emails) }
|
||||
it { expect(subject[9]).to be_a_kind_of(String) }
|
||||
it { expect(subject[10]).to be_nil }
|
||||
it { expect(subject[11]).to be_nil }
|
||||
it { expect(subject[12]).to be_nil }
|
||||
|
@ -809,40 +809,6 @@ describe Dossier do
|
|||
end
|
||||
end
|
||||
|
||||
describe '#followers_gestionnaires_emails' do
|
||||
|
||||
context 'when there is no follower' do
|
||||
let(:dossier) { create(:dossier, follows: []) }
|
||||
|
||||
subject { dossier.followers_gestionnaires_emails }
|
||||
|
||||
it { is_expected.to eq "" }
|
||||
end
|
||||
|
||||
let(:gestionnaire) { create(:gestionnaire) }
|
||||
let(:follow) { create(:follow, gestionnaire: gestionnaire) }
|
||||
|
||||
context 'when there is 1 follower' do
|
||||
let(:dossier) { create(:dossier, follows: [follow]) }
|
||||
|
||||
subject { dossier.followers_gestionnaires_emails }
|
||||
|
||||
it { is_expected.to eq gestionnaire.email }
|
||||
end
|
||||
|
||||
let(:gestionnaire2) { create :gestionnaire}
|
||||
let(:follow2) { create(:follow, gestionnaire: gestionnaire2) }
|
||||
|
||||
context 'when there is 2 followers' do
|
||||
let(:dossier) { create(:dossier, follows: [follow, follow2]) }
|
||||
|
||||
subject { dossier.followers_gestionnaires_emails }
|
||||
|
||||
it { is_expected.to eq "#{gestionnaire.email} #{gestionnaire2.email}" }
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
describe '#update_state_dates' do
|
||||
let(:state) { 'draft' }
|
||||
let(:dossier) { create(:dossier, state: state) }
|
||||
|
|
34
spec/serializers/dossier_table_export_serializer_spec.rb
Normal file
34
spec/serializers/dossier_table_export_serializer_spec.rb
Normal file
|
@ -0,0 +1,34 @@
|
|||
require 'spec_helper'
|
||||
|
||||
describe DossierTableExportSerializer do
|
||||
|
||||
describe '#emails_accompagnateurs' do
|
||||
|
||||
let(:gestionnaire){ create(:gestionnaire) }
|
||||
let(:follow) { create(:follow, gestionnaire: gestionnaire) }
|
||||
|
||||
subject { DossierTableExportSerializer.new(dossier).emails_accompagnateurs }
|
||||
|
||||
context 'when there is no accompagnateurs' do
|
||||
let(:dossier) { create(:dossier, follows: []) }
|
||||
|
||||
it { is_expected.to eq('') }
|
||||
end
|
||||
|
||||
context 'when there one accompagnateur' do
|
||||
let(:dossier) { create(:dossier, follows: [follow]) }
|
||||
|
||||
it { is_expected.to eq(gestionnaire.email) }
|
||||
end
|
||||
|
||||
context 'when there is 2 followers' do
|
||||
let(:gestionnaire2) { create :gestionnaire}
|
||||
let(:follow2) { create(:follow, gestionnaire: gestionnaire2) }
|
||||
let(:dossier) { create(:dossier, follows: [follow, follow2]) }
|
||||
|
||||
it { is_expected.to eq "#{gestionnaire.email} #{gestionnaire2.email}" }
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
end
|
Loading…
Add table
Reference in a new issue