@@ -12,13 +12,38 @@ def perform
1212 # this is needed to avoid loading all files into memory at once
1313 # Field 'name' is a lambda to allow dynamic naming based on the provider
1414 def provider_files
15- [
16- FileToUpload . new (
15+ {
16+ single_provider : FileToUpload . new (
1717 content : -> ( provider ) { XmlGenerator ::SingleProvider . new ( provider ) . perform } ,
1818 name : -> ( provider ) { "#{ language . file_storage_prefix } #{ provider . name . parameterize } .xml" } ,
1919 path : "#{ language . file_storage_prefix } CMES-Pi/assets/XML" ,
2020 ) ,
21- ]
21+ files : FileToUpload . new (
22+ content : -> ( provider ) { CsvGenerator ::Files . new ( provider ) . perform } ,
23+ name : -> ( provider ) { "#{ language . file_storage_prefix } #{ provider . name . parameterize } -file.csv" } ,
24+ path : "#{ language . file_storage_prefix } CMES-v2/assets/csv" ,
25+ ) ,
26+ topics : FileToUpload . new (
27+ content : -> ( provider ) { CsvGenerator ::Topics . new ( provider ) . perform } ,
28+ name : -> ( provider ) { "#{ language . file_storage_prefix } #{ provider . name . parameterize } -topic.csv" } ,
29+ path : "#{ language . file_storage_prefix } CMES-v2/assets/csv" ,
30+ ) ,
31+ tag_details : FileToUpload . new (
32+ content : -> ( provider ) { CsvGenerator ::TagDetails . new ( provider , language :) . perform } ,
33+ name : -> ( provider ) { "#{ language . file_storage_prefix } #{ provider . name . parameterize } -tag.csv" } ,
34+ path : "#{ language . file_storage_prefix } CMES-v2/assets/csv" ,
35+ ) ,
36+ topic_tags : FileToUpload . new (
37+ content : -> ( provider ) { CsvGenerator ::TopicTags . new ( provider , language :) . perform } ,
38+ name : -> ( provider ) { "#{ language . file_storage_prefix } #{ provider . name . parameterize } -topic-tag.csv" } ,
39+ path : "#{ language . file_storage_prefix } CMES-v2/assets/csv" ,
40+ ) ,
41+ topic_authors : FileToUpload . new (
42+ content : -> ( provider ) { CsvGenerator ::TopicAuthors . new ( provider ) . perform } ,
43+ name : -> ( provider ) { "#{ language . file_storage_prefix } #{ provider . name . parameterize } -topic-author.csv" } ,
44+ path : "#{ language . file_storage_prefix } CMES-v2/assets/csv" ,
45+ ) ,
46+ }
2247 end
2348
2449 # Field 'content' is a lambda to allow lazy evaluation
@@ -65,7 +90,7 @@ def language_files
6590 name : "#{ language . file_storage_prefix } TopicTag.csv" ,
6691 path : "#{ language . file_storage_prefix } CMES-v2/assets/csv" ,
6792 ) ,
68- topic_authors : FileToUpload . new (
93+ topic_authors : FileToUpload . new (
6994 content : -> ( language ) { CsvGenerator ::TopicAuthors . new ( language ) . perform } ,
7095 name : "#{ language . file_storage_prefix } TopicAuthor.csv" ,
7196 path : "#{ language . file_storage_prefix } CMES-v2/assets/csv" ,
@@ -79,11 +104,13 @@ def language_files
79104
80105 def process_language_content!
81106 language_files . keys . each do |file_id |
82- FileUploadJob . perform_later ( language . id , file_id . to_s , "file" )
107+ FileUploadJob . perform_later ( language . id , file_id . to_s )
83108 end
84109
85110 language . providers . distinct . find_each do |provider |
86- FileUploadJob . perform_later ( language . id , provider . id , "provider" )
111+ provider_files . keys . each do |file_id |
112+ FileUploadJob . perform_later ( language . id , file_id . to_s , provider . id )
113+ end
87114 end
88115 end
89116end
0 commit comments