Skip to content

Commit

Permalink
Merge pull request #2778 from betagouv/fix_2777_state_in_api
Browse files Browse the repository at this point in the history
Fix 2777 state in api
  • Loading branch information
LeSim authored Oct 8, 2018
2 parents 078cf03 + 2288303 commit 3edff83
Show file tree
Hide file tree
Showing 7 changed files with 55 additions and 35 deletions.
17 changes: 17 additions & 0 deletions app/models/dossier.rb
Original file line number Diff line number Diff line change
Expand Up @@ -277,6 +277,23 @@ def delete_and_keep_track
DossierMailer.notify_deletion_to_user(deleted_dossier, user.email).deliver_later
end

def old_state_value
case state
when Dossier.states.fetch(:en_construction)
'initiated'
when Dossier.states.fetch(:en_instruction)
'received'
when Dossier.states.fetch(:accepte)
'closed'
when Dossier.states.fetch(:refuse)
'refused'
when Dossier.states.fetch(:sans_suite)
'without_continuation'
else
state
end
end

private

def update_state_dates
Expand Down
15 changes: 1 addition & 14 deletions app/serializers/dossier_serializer.rb
Original file line number Diff line number Diff line change
Expand Up @@ -43,20 +43,7 @@ def entreprise
end

def state
case object.state
when Dossier.states.fetch(:en_construction)
'initiated'
when Dossier.states.fetch(:en_instruction)
'received'
when Dossier.states.fetch(:accepte)
'closed'
when Dossier.states.fetch(:refuse)
'refused'
when Dossier.states.fetch(:sans_suite)
'without_continuation'
else
object.state
end
object.old_state_value
end

def simplified_state
Expand Down
7 changes: 6 additions & 1 deletion app/serializers/dossiers_serializer.rb
Original file line number Diff line number Diff line change
@@ -1,9 +1,14 @@
class DossiersSerializer < ActiveModel::Serializer
attributes :id,
:updated_at,
:initiated_at
:initiated_at,
:state

def initiated_at
object.en_construction_at
end

def state
object.old_state_value
end
end
3 changes: 2 additions & 1 deletion spec/controllers/api/v1/dossiers_controller_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,8 @@
it { expect(subject[:id]).to eq(dossier.id) }
it { expect(subject[:updated_at]).to eq("2008-09-01T10:05:00.000Z") }
it { expect(subject[:initiated_at]).to eq("2008-09-01T10:06:00.000Z") }
it { expect(subject.keys.size).to eq(3) }
it { expect(subject[:state]).to eq("initiated") }
it { expect(subject.keys.size).to eq(4) }
end
end

Expand Down
28 changes: 28 additions & 0 deletions spec/models/dossier_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -1004,4 +1004,32 @@
it { expect(long_expired_dossier).to be_retention_expired }
end
end

describe 'old_state_value' do
subject { dossier.old_state_value }

context 'when the dossier is en instruction' do
let(:dossier) { create(:dossier, :en_instruction) }

it { is_expected.to eq('received') }
end

context 'when the dossier is accepte' do
let(:dossier) { create(:dossier, state: Dossier.states.fetch(:accepte)) }

it { is_expected.to eq('closed') }
end

context 'when the dossier is refuse' do
let(:dossier) { create(:dossier, state: Dossier.states.fetch(:refuse)) }

it { is_expected.to eq('refused') }
end

context 'when the dossier is sans_suite' do
let(:dossier) { create(:dossier, state: Dossier.states.fetch(:sans_suite)) }

it { is_expected.to eq('without_continuation') }
end
end
end
19 changes: 0 additions & 19 deletions spec/serializers/dossier_serializer_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -13,25 +13,6 @@
let(:dossier) { create(:dossier, :en_instruction) }

it { is_expected.to include(received_at: dossier.en_instruction_at) }
it { is_expected.to include(state: 'received') }
end

context 'when the dossier is accepte' do
let(:dossier) { create(:dossier, state: Dossier.states.fetch(:accepte)) }

it { is_expected.to include(state: 'closed') }
end

context 'when the dossier is refuse' do
let(:dossier) { create(:dossier, state: Dossier.states.fetch(:refuse)) }

it { is_expected.to include(state: 'refused') }
end

context 'when the dossier is sans_suite' do
let(:dossier) { create(:dossier, state: Dossier.states.fetch(:sans_suite)) }

it { is_expected.to include(state: 'without_continuation') }
end
end
end
1 change: 1 addition & 0 deletions spec/serializers/dossiers_serializer_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
let(:dossier) { create(:dossier, :en_construction) }

it { is_expected.to include(initiated_at: dossier.en_construction_at) }
it { is_expected.to include(state: 'initiated') }
end
end
end

0 comments on commit 3edff83

Please sign in to comment.