refactoring
This commit is contained in:
@@ -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());
|
||||
}
|
||||
}
|
||||
@@ -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')
|
||||
|
||||
|
||||
@@ -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))
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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):
|
||||
|
||||
Reference in New Issue
Block a user