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 {
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) {
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
def updateHtmlFile(symptoms, vaccines, htmlFile, defaultSelectVaccineOptionText = 'Select Vaccine'):
def updateHtmlFile(symptomsDescr, vaccinesDescr, htmlFile, defaultSelectVaccineOptionText = 'Select Vaccine'):
_saveOptions(
options = getSymptomOptions(symptoms),
options = getSymptomOptions(
symptoms = symptomsDescr['symptoms'],
filenameBySymptom = symptomsDescr['filenameBySymptom']),
htmlFile = htmlFile,
selectElementId = 'symptomSelect')
_saveOptions(
options = getVaccineOptions(vaccines, defaultSelectVaccineOptionText),
options = getVaccineOptions(
vaccines = vaccinesDescr['vaccines'],
filenameByDrug = vaccinesDescr['filenameByDrug'],
defaultOptionText = defaultSelectVaccineOptionText),
htmlFile = htmlFile,
selectElementId = 'vaccineSelect')

View File

@@ -1,20 +1,28 @@
import html
def getVaccineOptions(vaccines, defaultOptionText):
return _getOptionsWithDefaultOption(defaultOptionText = defaultOptionText, values = vaccines)
def getVaccineOptions(vaccines, filenameByDrug, defaultOptionText):
return _getOptionsWithDefaultOption(
defaultOptionText = defaultOptionText,
values = vaccines,
filenameByValue = filenameByDrug)
def getSymptomOptions(symptoms):
return _getOptionsWithDefaultOption(defaultOptionText = 'Select Symptom', values = symptoms)
def getSymptomOptions(symptoms, filenameBySymptom):
return _getOptionsWithDefaultOption(
defaultOptionText = 'Select Symptom',
values = symptoms,
filenameByValue = filenameBySymptom)
def _getOptionsWithDefaultOption(defaultOptionText, values):
return ['<option hidden disabled selected value>{defaultOptionText}</option>'.format(defaultOptionText = defaultOptionText)] + _getOptions(values)
def _getOptionsWithDefaultOption(defaultOptionText, values, filenameByValue):
return ['<option hidden disabled selected value>{defaultOptionText}</option>'.format(defaultOptionText = defaultOptionText)] + _getOptions(values, filenameByValue)
def _getOptions(values):
return [_getOption(value) for value in values]
def _getOptions(values, filenameByValue):
return [_getOption(filename = filenameByValue[value], displayValue = value) for value in values]
def _getOption(value):
return '<option value="{value}">{value}</option>'.format(value = html.escape(value))
def _getOption(filename, displayValue):
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'
filenameByDrug[drug] = 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'
# When
saveProportionalReportingRatios(prrBySymptomByDrug, directory)
filenameByDrug = saveProportionalReportingRatios(prrBySymptomByDrug, directory)
# Then
drugFilename = '1.json'
self.assertDictEqual(
ProportionalReportingRatiosPersisterTest.readJsonFile(f'{directory}/{drugFilename}'),
prrBySymptom)
self.assertDictEqual(
ProportionalReportingRatiosPersisterTest.readJsonFile(f'{directory}/filenameByDrug.json'),
{ drug: drugFilename })
self.assertDictEqual(filenameByDrug, { drug: drugFilename })
@staticmethod
def readJsonFile(file):