@@ -8,17 +8,7 @@ def user_list
88 includes ( :user ) .
99 order ( "members.member_uid" )
1010
11- respond_to do |format |
12- format . html
13- format . csv do
14- report = Report ::Csv ::Member . new ( current_organization , @members )
15- send_data report . run , filename : report . name , type : report . mime_type
16- end
17- format . pdf do
18- report = Report ::Pdf ::Member . new ( current_organization , @members )
19- send_data report . run , filename : report . name , type : report . mime_type
20- end
21- end
11+ report_responder ( 'Member' , current_organization , @members )
2212 end
2313
2414 def post_list
@@ -32,16 +22,27 @@ def post_list
3222 to_a .
3323 sort_by { |category , _ | category . try ( :name ) . to_s }
3424
25+ report_responder ( 'Post' , current_organization , @posts , @post_type )
26+ end
27+
28+ def transfer_list
29+ @transfers = current_organization . all_transfers_with_accounts
30+
31+ report_responder ( 'Transfer' , current_organization , @transfers )
32+ end
33+
34+ private
35+
36+ def report_responder ( report_class , *args )
3537 respond_to do |format |
3638 format . html
37- format . csv do
38- report = Report ::Csv ::Post . new ( current_organization , @posts , @post_type )
39- send_data report . run , filename : report . name , type : report . mime_type
40- end
41- format . pdf do
42- report = Report ::Pdf ::Post . new ( current_organization , @posts , @post_type )
43- send_data report . run , filename : report . name , type : report . mime_type
44- end
39+ format . csv { download_report ( "Report::Csv::#{ report_class } " , *args ) }
40+ format . pdf { download_report ( "Report::Pdf::#{ report_class } " , *args ) }
4541 end
4642 end
43+
44+ def download_report ( report_class , *args )
45+ report = report_class . constantize . new ( *args )
46+ send_data report . run , filename : report . name , type : report . mime_type
47+ end
4748end
0 commit comments