-
Notifications
You must be signed in to change notification settings - Fork 0
/
server.js
118 lines (110 loc) · 3.7 KB
/
server.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
const express = require("express"); //require express
const { response } = require("express");
const fs = require("fs");
let data = JSON.parse(fs.readFileSync("./data/youtubeChannels.json"));
let countrydata = JSON.parse(fs.readFileSync("./data/country.json"));
let countryInput = countrydata.ref_country_codes;
const app = express(); //creating application
let port = process.env.PORT || 3000;
const server = app.listen(port, () => console.log("Listening")); //listenign to port 3000
app.use(express.static("public")); //setting to public folder
const fetch = require("node-fetch");
const countries = require("i18n-iso-countries");
app.get("/global", async (req, resp) => {
const global_api_url = "https://covidapi.info/api/v1/global";
const fetch_response = await fetch(global_api_url);
const json_response = await fetch_response.json();
resp.json(json_response);
});
function countryToLatLong(countryGiven) {
let pos = [];
for (let i = 0; i < countryInput.length; i++) {
if (countryInput[i].country == countryGiven) {
pos.push(countryInput[i].latitude);
pos.push(countryInput[i].longitude);
return pos;
}
}
return pos;
}
app.get("/getStats/", async (req, resp) => {
const url = `https://coronavirus-19-api.herokuapp.com/countries`;
let stats;
const fetch_response = await fetch(url);
const json_response = await fetch_response.json();
const stats_response = json_response;
if (stats_response == null) {
stats = {
status: "Unsucceful"
};
} else {
stats = {
status: "succefull",
content: []
};
for (let i = 0; i < stats_response.length; i++) {
let temp = [];
temp.push(stats_response[i].country);
let pos = countryToLatLong(stats_response[i].country);
temp.push(stats_response[i].cases);
temp.push(stats_response[i].deaths);
temp.push(stats_response[i].recovered);
temp.push(pos);
stats.content.push(temp);
}
}
resp.json(stats);
});
app.get("/getNews/:place", async (req, resp) => {
let param = req.params.place;
let url = `https://api.smartable.ai/coronavirus/news/${param}`;
const requestOptions = {
method: "GET",
headers: {
"Subscription-Key": "6e430232a4cf42a49b3d40c2c4e37297"
},
redirect: "follow"
};
let news;
const fetch_response = await fetch(url, requestOptions);
const json_response = await fetch_response.json();
const news_response = json_response.news;
if (news_response == null) {
news = {
status: "Unsucceful"
};
} else {
news = {
status: "succefull",
content: []
};
//console.log(news_response);
for (let i = 0; i < news_response.length; i++) {
let temp = [];
temp.push(news_response[i].webUrl);
temp.push(news_response[i].title);
temp.push(news_response[i].excerpt);
let image = news_response[i].images;
if (image == null) {
image ="https://sciences.ucf.edu/psychology/wp-content/uploads/sites/63/2019/09/No-Image-Available.png";
} else {
image = news_response[i].images[0].url;
}
temp.push(image);
temp.push(news_response[i].publishedDateTime);
temp.push(news_response[i].provider.name);
news.content.push(temp);
}
}
resp.json(news);
});
app.get("/getClincs", async (req, resp) => {
const url =
"https://services1.arcgis.com/B6yKvIZqzuOr0jBR/arcgis/rest/services/COVID19_Testing_Centres_in_Canada/FeatureServer/0/query?where=1%3D1&outFields=USER_Name,USER_Link,USER_City,USER_Prov,USER_Phone,USER_Notes,USER_Street&outSR=4326&f=json";
const fetch_response = await fetch(url);
const json_response = await fetch_response.json();
resp.json(json_response);
});
app.get("/getChannels", (req, resp) => {
resp.json(data);
});