-
-
Notifications
You must be signed in to change notification settings - Fork 572
Expand file tree
/
Copy pathindividuals_requests_controller.rb
More file actions
44 lines (36 loc) · 1.48 KB
/
individuals_requests_controller.rb
File metadata and controls
44 lines (36 loc) · 1.48 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
module Partners
class IndividualsRequestsController < BaseController
def new
@request = FamilyRequest.new({}, initial_items: 1)
requestable_items = PartnerFetchRequestableItemsService.new(partner_id: current_partner.partner.id).call
@formatted_requestable_items = requestable_items.map do |rt|
[rt.name, rt.id]
end.sort
end
def create
create_service = Partners::FamilyRequestCreateService.new(
partner_user_id: current_partner_user.id,
comments: individuals_request_params[:comments],
family_requests_attributes: individuals_request_params[:items_attributes]&.values
)
create_service.call
if create_service.errors.none?
flash[:success] = 'Request was successfully created.'
redirect_to partners_request_path(create_service.partner_request.id)
else
@request = FamilyRequest.new({}, initial_items: 1)
@errors = create_service.errors
@requestable_items = Organization.find(current_partner.diaper_bank_id).valid_items.map do |item|
[item[:name], item[:id]]
end.sort
Rails.logger.info("[Request Creation Failure] partner_user_id=#{current_partner_user.id} reason=#{@errors.full_messages}")
render :new, status: :unprocessable_entity
end
end
private
def individuals_request_params
params.require(:partners_family_request)
.permit(:comments, items_attributes: %i[item_id person_count])
end
end
end