likwid/frontend/src/lib/api.ts
Marco Allegretti de6cc2de7a frontend: modify 26 files
Verified changes:
- modify frontend/astro.config.mjs
- modify frontend/src/components/AdminNav.astro
- modify frontend/src/components/voting/DelegationGraph.astro
- modify frontend/src/layouts/Layout.astro
- modify frontend/src/layouts/PublicLayout.astro
- modify frontend/src/lib/api.ts
- modify frontend/src/pages/about.astro
- modify frontend/src/pages/admin/approvals.astro
- modify frontend/src/pages/admin/invitations.astro
- modify frontend/src/pages/admin/plugins.astro
- modify frontend/src/pages/admin/roles.astro
- modify frontend/src/pages/admin/settings.astro
- modify frontend/src/pages/admin/voting.astro
- modify frontend/src/pages/communities.astro
- modify frontend/src/pages/communities/[slug]/index.astro
- modify frontend/src/pages/communities/[slug]/proposals/new.astro
- modify frontend/src/pages/communities/[slug]/settings.astro
- modify frontend/src/pages/communities/[slug]/voting-config.astro
- modify frontend/src/pages/delegations.astro
- modify frontend/src/pages/docs.astro
- modify frontend/src/pages/features.astro
- modify frontend/src/pages/index.astro
- modify frontend/src/pages/manifesto.astro
- modify frontend/src/pages/proposals/[id].astro
- modify frontend/src/pages/settings.astro
- modify frontend/src/pages/setup.astro

Diffstat:
- 26 files changed, 424 insertions(+), 126 deletions(-)
2026-01-29 00:47:14 +01:00

49 lines
1.2 KiB
TypeScript

const envApiBase =
(import.meta as any).env?.PUBLIC_API_BASE ||
(import.meta as any).env?.API_BASE ||
((globalThis as any).process?.env?.PUBLIC_API_BASE || (globalThis as any).process?.env?.API_BASE);
export const API_BASE = envApiBase || '';
const serverEnvApiBase =
(globalThis as any).process?.env?.INTERNAL_API_BASE ||
(globalThis as any).process?.env?.PUBLIC_API_BASE ||
(globalThis as any).process?.env?.API_BASE;
export const SERVER_API_BASE = serverEnvApiBase || API_BASE;
export interface HealthResponse {
status: string;
version: string;
}
export interface Community {
id: string;
name: string;
slug: string;
description: string | null;
created_at: string;
}
export interface User {
id: string;
username: string;
email: string;
display_name: string | null;
created_at: string;
}
export async function getHealth(): Promise<HealthResponse> {
const res = await fetch(`${API_BASE}/health`);
return res.json();
}
export async function getCommunities(): Promise<Community[]> {
const res = await fetch(`${API_BASE}/api/communities`);
return res.json();
}
export async function getUsers(): Promise<User[]> {
const res = await fetch(`${API_BASE}/api/users`);
return res.json();
}