Tried adding API-backend

This commit is contained in:
2025-05-07 13:21:18 +02:00
parent dcc06d94f2
commit e6a4c6d2f7
7 changed files with 2307 additions and 30 deletions

20
api-backend/src/index.ts Normal file
View File

@@ -0,0 +1,20 @@
import * as express from 'express';
import pathRoutes from './routes/parkRoutes';
import coasterRoutes from './routes/coasterRoutes';
const app = express();
const port = 3000;
// Middleware für JSON-Anfragen
app.use(express.json());
// Routen hinzufügen
app.use('/api/parks', pathRoutes);
app.use('/api/coasters', coasterRoutes);
// Start des Servers
app.listen(port, () => {
console.log(`Server läuft auf http://localhost:${port}`);
});
export default app;

View File

@@ -0,0 +1,21 @@
import sqlite3 from 'sqlite3';
const db = new sqlite3.Database('./coasterdb.sqlite3');
export const getCoasters = (): Promise<any[]> => {
return new Promise((resolve, reject) => {
db.all("SELECT * FROM coasters", (err, rows) => {
if (err) reject(err);
else resolve(rows);
});
});
};
export const getCoasterById = (id: number): Promise<any> => {
return new Promise((resolve, reject) => {
db.get("SELECT * FROM coasters WHERE id = ?", [id], (err, row) => {
if (err) reject(err);
else resolve(row);
});
});
};

View File

@@ -0,0 +1,21 @@
import sqlite3 from 'sqlite3';
const db = new sqlite3.Database('./coasterdb.sqlite3');
export const getParks = (): Promise<any[]> => {
return new Promise((resolve, reject) => {
db.all("SELECT * FROM parks", (err, rows) => {
if (err) reject(err);
else resolve(rows);
});
});
};
export const getParkById = (id: number): Promise<any> => {
return new Promise((resolve, reject) => {
db.get("SELECT * FROM parks WHERE id = ?", [id], (err, row) => {
if (err) reject(err);
else resolve(row);
});
});
};

View File

@@ -0,0 +1,31 @@
import { Router } from 'express';
import { getCoasters, getCoasterById } from '../models/coaster';
const router = Router();
// Alle Achterbahnen anzeigen
router.get('/', async (req, res) => {
try {
const coasters = await getCoasters();
res.json(coasters);
} catch (err) {
res.status(500).json({ error: err.message });
}
});
// Achterbahn nach ID anzeigen
router.get('/:id', async (req, res) => {
const { id } = req.params;
try {
const coaster = await getCoasterById(Number(id));
if (coaster) {
res.json(coaster);
} else {
res.status(404).json({ message: 'Achterbahn nicht gefunden' });
}
} catch (err) {
res.status(500).json({ error: err.message });
}
});
export default router;

View File

@@ -0,0 +1,31 @@
import { Router } from 'express';
import { getParks, getParkById } from '../models/park';
const router = Router();
// Alle Parks anzeigen
router.get('/', async (req, res) => {
try {
const parks = await getParks();
res.json(parks);
} catch (err) {
res.status(500).json({ error: err.message });
}
});
// Park nach ID anzeigen
router.get('/:id', async (req, res) => {
const { id } = req.params;
try {
const park = await getParkById(Number(id));
if (park) {
res.json(park);
} else {
res.status(404).json({ message: 'Park nicht gefunden' });
}
} catch (err) {
res.status(500).json({ error: err.message });
}
});
export default router;