covidtracker
Version:
An Api wrapper to get information about the Novel Coronavirus.
27 lines (26 loc) • 1.67 kB
JavaScript
const fetch = require('node-fetch');
module.exports = async function (params) {
if (!params.country && !params.sort) {
let countries = await fetch(`https://corona.lmao.ninja/v2/jhucsse`).then(r => r.json());
if (!countries || countries.length == 0) return { error: "API may be down, please try again later."}
return countries
} else if (!params.country && params.sort) {
let countries = await fetch(`https://corona.lmao.ninja/v2/jhucsse`).then(r => r.json());
if (!countries || countries.length == 0) return { error: "API may be down, please try again later."}
countries = await countries.sort((a, b) => a.stats[params.sort] + b.stats[params.sort]);
return countries;
} else if (params.country && params.province) {
try {
let data = await fetch(`https://corona.lmao.ninja/v2/jhucsse`).then(r => r.json());
if (!data || data.length == 0) return { error: "API may be down, please try again later."}
data = data.filter(x => x.country === params.country);
return data.filter(x => x.province === params.province);
} catch (e) { return { error: "API may be down, please try again later."} };
} else if (params.country && !params.province) {
try {
let data = await fetch(`https://corona.lmao.ninja/v2/jhucsse`).then(r => r.json());
if (!data || data.length == 0) return { error: "API may be down, please try again later."}
return data.filter(x => x.country === params.country);
} catch (e) { return { error: "API may be down, please try again later."} };
}
}