mirror of
https://github.com/ceratic/project_vollidioten_website.git
synced 2026-05-14 00:16:47 +02:00
feat: implement Players component with data fetching and loading state; remove mock data and enhance error handling in database service
This commit is contained in:
@@ -1,20 +1,18 @@
|
||||
import { MOCK_PLAYERS, MOCK_ORGS, MOCK_PROJECTS } from '../constants';
|
||||
import { Player, Organization, Project } from '../types';
|
||||
|
||||
const API_URL = 'https://vollidioten.ceraticsoft.de/api';
|
||||
const MOCK_DATA_HEADER = 'X-Mock-Data';
|
||||
|
||||
class DatabaseService {
|
||||
private players: Player[] = MOCK_PLAYERS;
|
||||
private orgs: Organization[] = MOCK_ORGS;
|
||||
private projects: Project[] = MOCK_PROJECTS;
|
||||
private players: Player[] = [];
|
||||
private orgs: Organization[] = [];
|
||||
private projects: Project[] = [];
|
||||
private listeners: Function[] = [];
|
||||
|
||||
constructor() {
|
||||
this.fetchAll();
|
||||
}
|
||||
|
||||
// Try to fetch real data from backend
|
||||
// Fetch data from backend - always try to load fresh data
|
||||
async fetchAll() {
|
||||
try {
|
||||
console.log("Fetching data from API...");
|
||||
@@ -24,11 +22,6 @@ class DatabaseService {
|
||||
fetch(`${API_URL}/projects`)
|
||||
]);
|
||||
|
||||
// Check if we're getting mock data from nginx fallback
|
||||
const isMockData = pRes.headers.get(MOCK_DATA_HEADER) === 'true' ||
|
||||
oRes.headers.get(MOCK_DATA_HEADER) === 'true' ||
|
||||
prRes.headers.get(MOCK_DATA_HEADER) === 'true';
|
||||
|
||||
if (pRes.ok && oRes.ok && prRes.ok) {
|
||||
const playersData = await pRes.json();
|
||||
const orgsData = await oRes.json();
|
||||
@@ -41,19 +34,14 @@ class DatabaseService {
|
||||
this.projects = projectsData;
|
||||
this.notify();
|
||||
|
||||
if (isMockData) {
|
||||
console.warn("Backend unavailable - using mock data from nginx fallback");
|
||||
} else {
|
||||
console.log("✅ Connected to Backend Database - using real data");
|
||||
}
|
||||
console.log("✅ Connected to Backend Database - using real data");
|
||||
} else {
|
||||
console.warn(`API returned errors: players=${pRes.status}, orgs=${oRes.status}, projects=${prRes.status}`);
|
||||
console.warn("Using built-in mock data");
|
||||
// Data is already set to mock data in constructor
|
||||
throw new Error("Backend unavailable");
|
||||
}
|
||||
} catch (e) {
|
||||
console.warn("Backend not available, using built-in Mock Data.", e);
|
||||
// Fallback is already set in constructor
|
||||
console.warn("Backend not available, data not loaded.", e);
|
||||
throw e; // Re-throw so components can handle the error
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user