Skip to content

Commit 75af9ad

Browse files
authored
Refactor out for_families attribute from FamilyRequestCreateService (#4861)
1 parent 8f8d685 commit 75af9ad

File tree

4 files changed

+15
-17
lines changed

4 files changed

+15
-17
lines changed

app/controllers/partners/family_requests_controller.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ def create
1919
create_service = Partners::FamilyRequestCreateService.new(
2020
partner_user_id: current_user.id,
2121
family_requests_attributes: family_requests_attributes,
22-
for_families: true
22+
request_type: "child"
2323
)
2424

2525
create_service.call
@@ -37,7 +37,7 @@ def validate
3737
@partner_request = Partners::FamilyRequestCreateService.new(
3838
partner_user_id: current_user.id,
3939
family_requests_attributes: family_requests_attributes,
40-
for_families: true
40+
request_type: "child"
4141
).initialize_only
4242
if @partner_request.valid?
4343
@total_items = @partner_request.total_items

app/controllers/partners/individuals_requests_controller.rb

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,8 @@ def create
1212
create_service = Partners::FamilyRequestCreateService.new(
1313
partner_user_id: current_user.id,
1414
comments: individuals_request_params[:comments],
15-
family_requests_attributes: individuals_request_params[:items_attributes]&.values
15+
family_requests_attributes: individuals_request_params[:items_attributes]&.values,
16+
request_type: "individual"
1617
)
1718

1819
create_service.call
@@ -36,7 +37,8 @@ def validate
3637
@partner_request = Partners::FamilyRequestCreateService.new(
3738
partner_user_id: current_user.id,
3839
comments: individuals_request_params[:comments],
39-
family_requests_attributes: individuals_request_params[:items_attributes]&.values
40+
family_requests_attributes: individuals_request_params[:items_attributes]&.values,
41+
request_type: "individual"
4042
).initialize_only
4143
if @partner_request.valid?
4244
@total_items = @partner_request.total_items

app/services/partners/family_request_create_service.rb

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,13 @@ module Partners
66
class FamilyRequestCreateService
77
include ServiceObjectErrorsMixin
88

9-
attr_reader :partner_user_id, :comments, :family_requests_attributes, :partner_request
9+
attr_reader :partner_user_id, :comments, :family_requests_attributes, :partner_request, :request_type
1010

11-
def initialize(partner_user_id:, family_requests_attributes:, comments: nil, for_families: false)
11+
def initialize(partner_user_id:, family_requests_attributes:, request_type:, comments: nil)
1212
@partner_user_id = partner_user_id
1313
@comments = comments
1414
@family_requests_attributes = family_requests_attributes.presence || []
15-
@for_families = for_families
15+
@request_type = request_type
1616
end
1717

1818
def call
@@ -81,9 +81,5 @@ def convert_person_count_to_item_quantity(item_id:, person_count:)
8181
def included_items_by_id
8282
@included_items_by_id ||= Item.where(id: family_requests_attributes.pluck(:item_id)).index_by(&:id)
8383
end
84-
85-
def request_type
86-
@for_families ? "child" : "individual"
87-
end
8884
end
8985
end

spec/services/partners/family_request_create_service_spec.rb

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,15 +5,15 @@
55
{
66
partner_user_id: partner_user.id,
77
comments: comments,
8-
for_families: for_families,
8+
request_type: request_type,
99
family_requests_attributes: family_requests_attributes
1010
}
1111
end
1212
let(:organization) { create(:organization) }
1313
let(:partner) { create(:partner, organization: organization) }
1414
let(:partner_user) { partner.primary_user }
1515
let(:comments) { Faker::Lorem.paragraph }
16-
let(:for_families) { false }
16+
let(:request_type) { "individual" }
1717

1818
context 'when the arguments are incorrect' do
1919
context 'because no family_requests_attributes or comments were defined' do
@@ -97,8 +97,8 @@
9797
expect(second_item_request.quantity.to_i).to eq(second_item_request.item.default_quantity * 4)
9898
end
9999

100-
context "with for_families false" do
101-
let(:for_families) { false }
100+
context "with request_type as individual" do
101+
let(:request_type) { "individual" }
102102

103103
it "creates a request of type individual" do
104104
expect { subject }.to change { Request.count }.by(1)
@@ -108,8 +108,8 @@
108108
end
109109
end
110110

111-
context "with for_families true" do
112-
let(:for_families) { true }
111+
context "with request_type as child" do
112+
let(:request_type) { "child" }
113113

114114
it "creates a request of type child" do
115115
expect { subject }.to change { Request.count }.by(1)

0 commit comments

Comments
 (0)