5 changed files with 33 additions and 5 deletions
@ -0,0 +1,28 @@ |
|||||||
|
module Csv |
||||||
|
class SchemeCsvService |
||||||
|
def initialize(user:) |
||||||
|
@user = user |
||||||
|
@attributes = scheme_attributes |
||||||
|
end |
||||||
|
|
||||||
|
def prepare_csv(schemes) |
||||||
|
CSV.generate(headers: true) do |csv| |
||||||
|
csv << @attributes |
||||||
|
|
||||||
|
schemes.find_each do |scheme| |
||||||
|
csv << @attributes.map { |attribute| value(attribute, scheme) } |
||||||
|
end |
||||||
|
end |
||||||
|
end |
||||||
|
|
||||||
|
private |
||||||
|
|
||||||
|
def value(attribute, log) |
||||||
|
log.public_send(attribute) |
||||||
|
end |
||||||
|
|
||||||
|
def scheme_attributes |
||||||
|
%w[scheme_code scheme_service_name scheme_status scheme_sensitive scheme_type scheme_registered_under_care_act scheme_owning_organisation_name scheme_support_services_provided_by scheme_primary_client_group scheme_has_other_client_group scheme_secondary_client_group scheme_support_type scheme_intended_stay scheme_created_at scheme_active_dates] |
||||||
|
end |
||||||
|
end |
||||||
|
end |
||||||
Loading…
Reference in new issue