diff --git a/docs/Dict2CsvConverter.js b/docs/Dict2CsvConverter.js deleted file mode 100644 index 657cbdb0c6f..00000000000 --- a/docs/Dict2CsvConverter.js +++ /dev/null @@ -1,15 +0,0 @@ -class Dict2CsvConverter { - - static convertDict2CSV(dict) { - const { 'keys': columns, 'values': firstRow } = Utils.getKeysAlignedWithValues(dict); - return `${Dict2CsvConverter.#quoteValues(columns)}\n${firstRow}`; - } - - static #quoteValues(values) { - return values.map(Dict2CsvConverter.#quoteValue); - } - - static #quoteValue(value) { - return '"' + value + '"'; - } -} diff --git a/docs/HowBadIsMyBatch.html b/docs/HowBadIsMyBatch.html index ccf297d94e0..9855463c021 100644 --- a/docs/HowBadIsMyBatch.html +++ b/docs/HowBadIsMyBatch.html @@ -26,7 +26,6 @@ - diff --git a/docs/SymptomsCausedByVaccines/index.html b/docs/SymptomsCausedByVaccines/index.html index aba6af76107..7297c496f28 100644 --- a/docs/SymptomsCausedByVaccines/index.html +++ b/docs/SymptomsCausedByVaccines/index.html @@ -26,9 +26,9 @@ - + diff --git a/docs/SymptomsCausedByVaccines/js/PrrByKey2CsvConverter.js b/docs/SymptomsCausedByVaccines/js/PrrByKey2CsvConverter.js new file mode 100644 index 00000000000..49f037fac17 --- /dev/null +++ b/docs/SymptomsCausedByVaccines/js/PrrByKey2CsvConverter.js @@ -0,0 +1,34 @@ +class PrrByKey2CsvConverter { + + static convertPrrByKey2Csv({ prrByKey, keyColumn, prrColumn }) { + return PrrByKey2CsvConverter.#convert2Csv( + { + prrByKey: PrrByKey2CsvConverter.#quoteKeys(prrByKey), + keyColumn: PrrByKey2CsvConverter.#quote(keyColumn), + prrColumn: PrrByKey2CsvConverter.#quote(prrColumn) + }); + } + + static #quoteKeys(prrByKey) { + return Object.fromEntries( + Object + .entries(prrByKey) + .map(([key, prr]) => [PrrByKey2CsvConverter.#quote(key), prr])) + } + + static #quote(str) { + return '"' + str + '"'; + } + + static #convert2Csv({ prrByKey, keyColumn, prrColumn }) { + const header = `${keyColumn},${prrColumn}`; + return `${header}\n${PrrByKey2CsvConverter.#convertDict2Csv(prrByKey)}`; + } + + static #convertDict2Csv(dict) { + return Object + .entries(dict) + .map(([key, value]) => `${key},${value}`) + .join('\n'); + } +} diff --git a/docs/SymptomsCausedByVaccines/js/PrrByVaccineTableView.js b/docs/SymptomsCausedByVaccines/js/PrrByVaccineTableView.js index 3c3fa9d0158..263a7e7c7dc 100644 --- a/docs/SymptomsCausedByVaccines/js/PrrByVaccineTableView.js +++ b/docs/SymptomsCausedByVaccines/js/PrrByVaccineTableView.js @@ -35,7 +35,14 @@ class PrrByVaccineTableView { UIUtils.downloadUrlAsFilename( window.URL.createObjectURL( new Blob( - [Utils.convertDict2CSV(this.#prrByVaccine)], + [ + PrrByKey2CsvConverter.convertPrrByKey2Csv( + { + prrByKey: this.#prrByVaccine, + keyColumn: 'Vaccine', + prrColumn: 'Proportional Reporting Ratio' + }) + ], { type: 'text/csv' })), this.#symptom ); diff --git a/docs/Utils.js b/docs/Utils.js index 9a95ce59679..e9e315a7ee7 100644 --- a/docs/Utils.js +++ b/docs/Utils.js @@ -24,8 +24,4 @@ class Utils { static sliceDict(dict, start, end) { return Object.fromEntries(Object.entries(dict).slice(start, end)); } - - static convertDict2CSV(dict) { - return Dict2CsvConverter.convertDict2CSV(dict); - } } diff --git a/docs/VaccineDistributionByZipcode.html b/docs/VaccineDistributionByZipcode.html index e1e172c5de7..320a56a8a10 100644 --- a/docs/VaccineDistributionByZipcode.html +++ b/docs/VaccineDistributionByZipcode.html @@ -12,7 +12,6 @@ - diff --git a/docs/batchCodes.html b/docs/batchCodes.html index 7d4a9666756..5a6e8e90690 100644 --- a/docs/batchCodes.html +++ b/docs/batchCodes.html @@ -22,7 +22,6 @@ - diff --git a/docs/intensivstationen.html b/docs/intensivstationen.html index e00fe5093ba..2659f74053d 100644 --- a/docs/intensivstationen.html +++ b/docs/intensivstationen.html @@ -23,7 +23,6 @@ integrity="sha512-MKxcSu/LDtbIYHBNAWUQwfB3iVoG9xeMCm32QV5hZ/9lFaQZJVaXfz9aFa0IZExWzCpm7OWvp9zq9gVip/nLMg==" referrerpolicy="no-referrer" rel="stylesheet" /> - diff --git a/test/SymptomsCausedByVaccines/PrrByKey2CsvConverterTest.js b/test/SymptomsCausedByVaccines/PrrByKey2CsvConverterTest.js new file mode 100644 index 00000000000..1319018f62c --- /dev/null +++ b/test/SymptomsCausedByVaccines/PrrByKey2CsvConverterTest.js @@ -0,0 +1,25 @@ +QUnit.module('PrrByKey2CsvConverterTest', function () { + + QUnit.test('convertPrrByKey2Csv', function (assert) { + // Given + const prrByKey = { + "MM,R": 26.17432376240791, + "VARCEL": 10.549534724816644 + }; + + // When + const csv = PrrByKey2CsvConverter.convertPrrByKey2Csv( + { + prrByKey: prrByKey, + keyColumn: 'Vaccine', + prrColumn: 'Proportional Reporting Ratio' + }); + + // Then + const csvExpected = + `"Vaccine","Proportional Reporting Ratio" +"MM,R",26.17432376240791 +"VARCEL",10.549534724816644`; + assert.equal(csv, csvExpected); + }); +}); \ No newline at end of file diff --git a/test/SymptomsCausedByVaccines/UtilsTest.js b/test/SymptomsCausedByVaccines/UtilsTest.js deleted file mode 100644 index ea007853d1c..00000000000 --- a/test/SymptomsCausedByVaccines/UtilsTest.js +++ /dev/null @@ -1,16 +0,0 @@ -QUnit.module('UtilsTest', function () { - - QUnit.test('convertDict2CSV', function (assert) { - // Given - const dict = { - "MM,R": 26.17432376240791, - "VARCEL": 10.549534724816644 - }; - - // When - const csv = Utils.convertDict2CSV(dict); - - // Then - assert.equal(csv, '"MM,R","VARCEL"\n26.17432376240791,10.549534724816644'); - }); -}); \ No newline at end of file diff --git a/test/SymptomsCausedByVaccines/index.test.html b/test/SymptomsCausedByVaccines/index.test.html index 8f82db47109..c347f45de30 100644 --- a/test/SymptomsCausedByVaccines/index.test.html +++ b/test/SymptomsCausedByVaccines/index.test.html @@ -9,9 +9,9 @@ Symptoms caused by Vaccines - + @@ -26,7 +26,7 @@ JsHamcrest.Integration.QUnit(); JsMockito.Integration.QUnit(); - +