Skip to content

Commit

Permalink
Merge pull request #50 from br-data/#27-change-to-import-json
Browse files Browse the repository at this point in the history
#27 change to import json
  • Loading branch information
stekhn authored Dec 11, 2022
2 parents 1438978 + be5eaa4 commit 85f9a3b
Show file tree
Hide file tree
Showing 3 changed files with 30 additions and 63 deletions.
76 changes: 25 additions & 51 deletions src/downloaders/downloader.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,18 @@ import {
import { resolve } from 'path';
import { config } from '../lib/config';
import { GenericObject } from '../lib/types';
import deutschland from '../../static/deutschland-einwohner.json';
import deutschland_alter from '../../static/deutschland-alter.json';
import bundeslaender from '../../static/bundeslaender.json';
import bundeslaender_einwohner from '../../static/bundeslaender-einwohner.json';
import bundeslaender_alter from '../../static/bundeslaender-alter.json';
import landkreise_einwohner from '../../static/landkreise-einwohner.json';
import landkreis2regierungsbezirk from '../../static/regierungsbezirke.json';
import landkreise from '../../static/landkreise.json';
import { type } from 'os';
import console, { assert } from 'console';
import { response } from 'express';


export class Downloader {
name: string;
Expand All @@ -32,7 +44,7 @@ export class Downloader {

async run() {
// Lade den letzten Status
this.loadStatus();
await this.loadStatus();
this.status.error = undefined;

try {
Expand Down Expand Up @@ -63,9 +75,10 @@ export class Downloader {
}

// Lade das letzte Status-Objekt, bzw. erstelle ein neues Status-Objekt
loadStatus() {
async loadStatus() {
if (existsSync(this.statusFilename)) {
this.status = JSON.parse(readFileSync(this.statusFilename).toString());
var file_name = this.statusFilename.toString();
this.status = await import(file_name).then(module => module.default);
} else {
// @ts-ignore @TODO Add proper definition
this.status = {};
Expand All @@ -74,7 +87,7 @@ export class Downloader {
}

// Speicher das Status-Objekt
saveStatus() {
async saveStatus() {
this.status.name = this.name;
this.status.dateEnd = Date.now();

Expand Down Expand Up @@ -108,39 +121,28 @@ export class Downloader {
const cacheAltergruppen = new Map();

switch (field) {

case 'deutschland-einwohner':

{
const deutschland = JSON.parse(
readFileSync(
resolve(dataFolder, 'deutschland-einwohner.json')
).toString()
);
data.forEach((e) => Object.assign(e, deutschland));
}
break;

case 'deutschland-alter':
{
const deutschland = JSON.parse(
readFileSync(
resolve(dataFolder, 'deutschland-alter.json')
).toString()
);
data.forEach((e) => {
e.einwohnerzahl = getAltersgruppen(
e.altersgruppe,
e.altersgruppe,
deutschland.einwohnerzahl
deutschland_alter.einwohnerzahl
);
});
}
break;

case 'bundeslaender':
{
const bundeslaender = JSON.parse(
readFileSync(resolve(dataFolder, 'bundeslaender.json')).toString()
);
data.forEach((e) =>
Object.assign(e, bundeslaender[e.bundeslandId])
);
Expand All @@ -149,26 +151,16 @@ export class Downloader {

case 'bundeslaender-einwohner':
{
const bundeslaender = JSON.parse(
readFileSync(
resolve(dataFolder, 'bundeslaender-einwohner.json')
).toString()
);
data.forEach((e) =>
Object.assign(e, bundeslaender[e.bundeslandId])
Object.assign(e, bundeslaender_einwohner[e.bundeslandId])
);
}
break;

case 'bundeslaender-alter':
{
const bundeslaender = JSON.parse(
readFileSync(
resolve(dataFolder, 'bundeslaender-alter.json')
).toString()
);
data.forEach((e) => {
const obj = Object.assign({}, bundeslaender[e.bundeslandId]);
const obj = Object.assign({}, bundeslaender_alter[e.bundeslandId]);
obj.einwohnerzahl = getAltersgruppen(
e.bundeslandId + '_' + e.altersgruppe,
e.altersgruppe,
Expand All @@ -180,24 +172,14 @@ export class Downloader {
break;

case 'regierungsbezirke-einwohner':
{
const landkreise = JSON.parse(
readFileSync(
resolve(dataFolder, 'landkreise-einwohner.json')
).toString()
);
const landkreis2regierungsbezirk = JSON.parse(
readFileSync(
resolve(dataFolder, 'regierungsbezirke.json')
).toString()
);
{
const regierungsbezirke = new Map();
Object.entries(landkreis2regierungsbezirk).forEach(
([landkreisId, regierungsbezirk]) => {
if (!regierungsbezirke.has(regierungsbezirk))
regierungsbezirke.set(regierungsbezirk, { einwohnerzahl: 0 });
regierungsbezirke.get(regierungsbezirk).einwohnerzahl +=
landkreise[landkreisId].einwohnerzahl;
landkreise_einwohner[landkreisId].einwohnerzahl;
}
);
data.forEach((e) =>
Expand All @@ -208,21 +190,13 @@ export class Downloader {

case 'landkreise':
{
const landkreise = JSON.parse(
readFileSync(resolve(dataFolder, 'landkreise.json')).toString()
);
data.forEach((e) => Object.assign(e, landkreise[e.landkreisId]));
}
break;

case 'landkreise-einwohner':
{
const landkreise = JSON.parse(
readFileSync(
resolve(dataFolder, 'landkreise-einwohner.json')
).toString()
);
data.forEach((e) => Object.assign(e, landkreise[e.landkreisId]));
data.forEach((e) => Object.assign(e, landkreise_einwohner[e.landkreisId]));
}
break;

Expand Down
10 changes: 3 additions & 7 deletions src/downloaders/downloader_infektionen.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@ import { Downloader } from './downloader';
import { getGithubFileMeta, csv2array, summarizer } from '../lib/helper';
import { GenericObject } from '../lib/types';
import { config } from '../lib/config';
import regierungsbezirke from '../../static/regierungsbezirke.json';


export class DownloaderInfektionen extends Downloader {
githubRepo = 'robert-koch-institut/SARS-CoV-2-Infektionen_in_Deutschland';
Expand Down Expand Up @@ -82,13 +84,7 @@ export class DownloaderInfektionen extends Downloader {
['meldedatum', 'altersgruppe'],
['anzahlFall', 'anzahlTodesfall', 'anzahlGenesen']
);

const regierungsbezirke = JSON.parse(
fs
.readFileSync(resolve(config.folders.static, 'regierungsbezirke.json'))
.toString()
);


let dateMin = '2020-01-01';
let dateMax = '2020-01-01'; // @TODO Is this correct?

Expand Down
7 changes: 2 additions & 5 deletions src/downloaders/downloader_intensivpatienten.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import { Downloader } from './downloader';
import { csv2array } from '../lib/helper';
import { config } from '../lib/config';
import { GenericObject } from '../lib/types';
import stateMap from '../../static/bundeslaender-divi.json';

export class DownloaderIntensivpatienten extends Downloader {
constructor() {
Expand Down Expand Up @@ -58,11 +59,7 @@ export class DownloaderIntensivpatienten extends Downloader {
}

transformData(data: GenericObject[], hasStates = true) {
const stateMap = JSON.parse(
fs
.readFileSync(resolve(config.folders.static, 'bundeslaender-divi.json'))
.toString()
);

const states = hasStates ? stateMap : [];

return data
Expand Down

0 comments on commit 85f9a3b

Please sign in to comment.