refactoring

This commit is contained in:
Frank Knoll
2024-07-11 23:54:47 +02:00
parent 53ac140e83
commit 4fd0bc7490
5 changed files with 31 additions and 20 deletions

View File

@@ -1,10 +1,10 @@
class PrrByVaccineProvider { class PrrByVaccineProvider {
static getPrrByVaccine(symptom) { static getPrrByVaccine(symptom) {
return fetch(`./data/ProportionalReportingRatios/symptoms/${symptom}.json`).then(response => response.json()); return fetch(`./data/ProportionalReportingRatios/symptoms/${symptom}`).then(response => response.json());
} }
static getPrrBySymptom(vaccine) { static getPrrBySymptom(vaccine) {
return fetch(`./data/ProportionalReportingRatios/vaccines/${vaccine}.json`).then(response => response.json()); return fetch(`./data/ProportionalReportingRatios/vaccines/${vaccine}`).then(response => response.json());
} }
} }

View File

@@ -5,14 +5,19 @@ from SymptomsCausedByVaccines.HtmlUtils import getSymptomOptions, getVaccineOpti
from SymptomsCausedByVaccines.OptionsSetter import OptionsSetter from SymptomsCausedByVaccines.OptionsSetter import OptionsSetter
def updateHtmlFile(symptoms, vaccines, htmlFile, defaultSelectVaccineOptionText = 'Select Vaccine'): def updateHtmlFile(symptomsDescr, vaccinesDescr, htmlFile, defaultSelectVaccineOptionText = 'Select Vaccine'):
_saveOptions( _saveOptions(
options = getSymptomOptions(symptoms), options = getSymptomOptions(
symptoms = symptomsDescr['symptoms'],
filenameBySymptom = symptomsDescr['filenameBySymptom']),
htmlFile = htmlFile, htmlFile = htmlFile,
selectElementId = 'symptomSelect') selectElementId = 'symptomSelect')
_saveOptions( _saveOptions(
options = getVaccineOptions(vaccines, defaultSelectVaccineOptionText), options = getVaccineOptions(
vaccines = vaccinesDescr['vaccines'],
filenameByDrug = vaccinesDescr['filenameByDrug'],
defaultOptionText = defaultSelectVaccineOptionText),
htmlFile = htmlFile, htmlFile = htmlFile,
selectElementId = 'vaccineSelect') selectElementId = 'vaccineSelect')

View File

@@ -1,20 +1,28 @@
import html import html
def getVaccineOptions(vaccines, defaultOptionText): def getVaccineOptions(vaccines, filenameByDrug, defaultOptionText):
return _getOptionsWithDefaultOption(defaultOptionText = defaultOptionText, values = vaccines) return _getOptionsWithDefaultOption(
defaultOptionText = defaultOptionText,
values = vaccines,
filenameByValue = filenameByDrug)
def getSymptomOptions(symptoms): def getSymptomOptions(symptoms, filenameBySymptom):
return _getOptionsWithDefaultOption(defaultOptionText = 'Select Symptom', values = symptoms) return _getOptionsWithDefaultOption(
defaultOptionText = 'Select Symptom',
values = symptoms,
filenameByValue = filenameBySymptom)
def _getOptionsWithDefaultOption(defaultOptionText, values): def _getOptionsWithDefaultOption(defaultOptionText, values, filenameByValue):
return ['<option hidden disabled selected value>{defaultOptionText}</option>'.format(defaultOptionText = defaultOptionText)] + _getOptions(values) return ['<option hidden disabled selected value>{defaultOptionText}</option>'.format(defaultOptionText = defaultOptionText)] + _getOptions(values, filenameByValue)
def _getOptions(values): def _getOptions(values, filenameByValue):
return [_getOption(value) for value in values] return [_getOption(filename = filenameByValue[value], displayValue = value) for value in values]
def _getOption(value): def _getOption(filename, displayValue):
return '<option value="{value}">{value}</option>'.format(value = html.escape(value)) return '<option value="{value}">{displayValue}</option>'.format(
value = filename,
displayValue = html.escape(displayValue))

View File

@@ -10,4 +10,4 @@ def saveProportionalReportingRatios(prrBySymptomByDrug, directory):
filename = f'{i}.json' filename = f'{i}.json'
filenameByDrug[drug] = filename filenameByDrug[drug] = filename
IOUtils.saveDictAsJson(prrBySymptom, f'{directory}/{filename}') IOUtils.saveDictAsJson(prrBySymptom, f'{directory}/{filename}')
IOUtils.saveDictAsJson(filenameByDrug, f'{directory}/filenameByDrug.json') return filenameByDrug

View File

@@ -18,16 +18,14 @@ class ProportionalReportingRatiosPersisterTest(unittest.TestCase):
directory = 'src/tmp/vaccines' directory = 'src/tmp/vaccines'
# When # When
saveProportionalReportingRatios(prrBySymptomByDrug, directory) filenameByDrug = saveProportionalReportingRatios(prrBySymptomByDrug, directory)
# Then # Then
drugFilename = '1.json' drugFilename = '1.json'
self.assertDictEqual( self.assertDictEqual(
ProportionalReportingRatiosPersisterTest.readJsonFile(f'{directory}/{drugFilename}'), ProportionalReportingRatiosPersisterTest.readJsonFile(f'{directory}/{drugFilename}'),
prrBySymptom) prrBySymptom)
self.assertDictEqual( self.assertDictEqual(filenameByDrug, { drug: drugFilename })
ProportionalReportingRatiosPersisterTest.readJsonFile(f'{directory}/filenameByDrug.json'),
{ drug: drugFilename })
@staticmethod @staticmethod
def readJsonFile(file): def readJsonFile(file):