1
0
mirror of https://github.com/franjsco/covid19-campania synced 2025-02-16 11:21:26 +01:00

Merge pull request #2 from franjsco/lettura-dati-da-json

Lettura dati da json
This commit is contained in:
Francesco Esposito 2020-04-07 21:19:04 +02:00 committed by GitHub
commit 496e481841
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 15 additions and 49 deletions

10
package-lock.json generated
View File

@ -4029,11 +4029,6 @@
"resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.9.tgz",
"integrity": "sha512-xz39Sb4+OaTsULgUERcCk+TJj8ylkL4aSVDQiX/ksxbELSqwkgt4d4RD7fovIdgJGSuNYqwZEiVjYY5l0ask+Q=="
},
"csvjson-csv2json": {
"version": "5.0.6",
"resolved": "https://registry.npmjs.org/csvjson-csv2json/-/csvjson-csv2json-5.0.6.tgz",
"integrity": "sha512-to9QlVI4yQFPzSqi6XZ97lULKs5m3K8hlE/UkbvKSw81FfDwgV9MUtSbHFJ4SRT4IA7UPkuW2EqsH/MWN5YRow=="
},
"cyclist": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/cyclist/-/cyclist-1.0.1.tgz",
@ -4083,11 +4078,6 @@
}
}
},
"date-fns": {
"version": "2.11.0",
"resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.11.0.tgz",
"integrity": "sha512-8P1cDi8ebZyDxUyUprBXwidoEtiQAawYPGvpfb+Dg0G6JrQ+VozwOmm91xYC0vAv1+0VmLehEPb+isg4BGUFfA=="
},
"debug": {
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",

View File

@ -11,8 +11,6 @@
"@testing-library/user-event": "^7.2.1",
"axios": "^0.19.2",
"bootstrap": "^4.4.1",
"csvjson-csv2json": "^5.0.6",
"date-fns": "^2.11.0",
"prop-types": "^15.7.2",
"react": "^16.13.0",
"react-bootstrap": "^1.0.0-beta.17",

BIN
screenshot.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 88 KiB

After

Width:  |  Height:  |  Size: 54 KiB

View File

@ -1,13 +1,8 @@
// import axios from 'axios';
import axios from 'axios';
import csv2json from 'csvjson-csv2json';
import { format, addDays, getHours } from 'date-fns';
const getCSVRegionifromRepository = async (date) => {
const url = 'https://raw.githubusercontent.com/pcm-dpc/COVID-19/master/dati-regioni/';
const filename = `dpc-covid19-ita-regioni-${format(date, 'yyyyMMdd')}.csv`;
const getJsonRegioni = async () => {
const url = 'https://raw.githubusercontent.com/pcm-dpc/COVID-19/master/dati-json/';
const filename = 'dpc-covid19-ita-regioni-latest.json';
const finalURL = `${url + filename}`;
let result;
@ -22,34 +17,14 @@ const getCSVRegionifromRepository = async (date) => {
};
const convertCSVtoJSON = (csv) => {
if (!csv) {
return null;
}
return csv2json(csv, { parseNumbers: true });
};
const getData = async () => {
const actualDate = new Date();
const previousDate = addDays(actualDate, -1);
const hour = getHours(actualDate);
let result;
const nomeRegione = 'Campania';
const datiRegione = await getJsonRegioni();
// preleva il CSV con data attuale solamente se sono passate le 18
if (hour >= 18) {
result = await getCSVRegionifromRepository(actualDate);
}
// preleva il CSV con data precedente qualora non fosse stato trovato quello attuale
if (!result) {
result = await getCSVRegionifromRepository(previousDate);
}
// converte il CSV in JSON e filtra i dati per la regione Campania
if (result) {
const tmpJSON = convertCSVtoJSON(result);
result = tmpJSON.find((d) => d.denominazione_regione === 'Campania');
if (datiRegione) {
result = datiRegione.find((regione) => regione.denominazione_regione === nomeRegione);
}
return result;

View File

@ -38,7 +38,10 @@ Card.defaultProps = {
Card.propTypes = {
title: PropTypes.string.isRequired,
value: PropTypes.string,
value: PropTypes.oneOfType([
PropTypes.string,
PropTypes.number,
]),
bgColor: PropTypes.string,
textColor: PropTypes.string,
};

View File

@ -7,7 +7,7 @@ const Infobox = (props) => {
return (
<div>
<span className="font-weight-bold">Ultimo aggiornamento: </span>
{ dataAggiornamento.split(' ')[0] }
{ dataAggiornamento.split('T')[0] }
</div>
);
};

View File

@ -64,15 +64,15 @@ class Dashboard extends Component {
<Card
bgColor="info"
title="Attualmente positivi"
value={state.totale_attualmente_positivi}
value={state.totale_positivi}
/>
</Col>
<Col xs={12} sm={4}>
<Card
bgColor="info"
title="Nuovi attualmente positivi"
value={state.nuovi_attualmente_positivi}
title="Nuovi positivi"
value={state.nuovi_positivi}
/>
</Col>