-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathfetchAnnouncementsAPI.js
More file actions
82 lines (68 loc) · 2.91 KB
/
fetchAnnouncementsAPI.js
File metadata and controls
82 lines (68 loc) · 2.91 KB
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
import express from 'express'
import fs from 'fs'
import cors from "cors"
import path from 'path';
import { fileURLToPath } from 'url';
import { dirname } from 'path'
const __filename = fileURLToPath(import.meta.url);
const __dirname = dirname(__filename);
const app = express();
const PORT = 3000;
// Enable CORS for all origins
app.use(cors());
app.use('/images', express.static(path.join(__dirname, 'public/images')));
function fetchAnnouncements(localFile, localDiscordFile, res) {
const localFileData = JSON.parse(fs.readFileSync(localFile, 'utf-8'));
const discordFileData = JSON.parse(fs.readFileSync(localDiscordFile, 'utf-8'));
const appendedData = Array.isArray(localFileData) && Array.isArray(discordFileData)
? [...localFileData]
: { ...localFileData };
// ? [...localFileData, ...discordFileData]
// : { ...localFileData, ...discordFileData };
appendedData.sort((a, b) => -Date.parse(b.date) + Date.parse(a.date));
res.json(appendedData);
}
//Routes to get the announcements
app.get('/api/announcements/general', (req, res) => {
const localFile = './localAnnouncements/general.json';
const localDiscordFiles = './discordAnnouncements/general.json';
fetchAnnouncements(localFile, localDiscordFiles, res);
});
app.get('/api/announcements/gamedev', (req, res) => {
const localFile = './localAnnouncements/gamedev.json';
const localDiscordFiles = './discordAnnouncements/gamedev.json';
fetchAnnouncements(localFile, localDiscordFiles, res);
});
app.get('/api/announcements/cp', (req, res) => {
const localFile = './localAnnouncements/cp.json';
const localDiscordFiles = './discordAnnouncements/cp.json';
fetchAnnouncements(localFile, localDiscordFiles, res);
});
app.get('/api/announcements/security', (req, res) => {
const localFile = './localAnnouncements/security.json';
const localDiscordFiles = './discordAnnouncements/security.json';
fetchAnnouncements(localFile, localDiscordFiles, res);
});
app.get('/api/announcements/hackathons', (req, res) => {
const localFile = './localAnnouncements/hackathons.json';
const localDiscordFiles = './discordAnnouncements/hackathons.json';
fetchAnnouncements(localFile, localDiscordFiles, res);
});
app.get('/api/announcements/opensource', (req, res) => {
const localFile = './localAnnouncements/opensource.json';
const localDiscordFiles = './discordAnnouncements/opensource.json';
fetchAnnouncements(localFile, localDiscordFiles, res);
});
app.get('/api/announcements/important', (req, res) => {
const localFile = './localAnnouncements/important.json';
const localDiscordFiles = './discordAnnouncements/important.json';
fetchAnnouncements(localFile, localDiscordFiles, res);
});
app.get('/api/talks', (req, res) => {
const talksData = JSON.parse(fs.readFileSync('./talks/talks.json', 'utf-8'))
res.json(talksData)
})
// Start the server
app.listen(PORT, () => {
console.log(`Server running on http://localhost:${PORT}`);
});