API scheiß

This commit is contained in:
2026-04-09 13:56:39 +02:00
parent 8519e7da27
commit 40ee18fc01
8 changed files with 15 additions and 12 deletions

1
.env.docker Normal file
View File

@@ -0,0 +1 @@
VITE_API_TARGET=http://spring-backend:5173

View File

@@ -7,6 +7,8 @@ RUN npm install
COPY . .
ENV VITE_API_TARGET=http://spring-backend:5173
EXPOSE 8080
CMD ["npm", "run", "dev", "--", "--host", "--port", "8080"]

View File

@@ -64,7 +64,7 @@ export default function CreateNewsPage() {
formData.append('data', new Blob([JSON.stringify(jsonPayload)], { type: 'application/json' }));
files.forEach((file) => formData.append('images', file));
await axiosInstance.post('/api/news', formData, {
await axiosInstance.post('/news', formData, {
headers: { 'Content-Type': 'multipart/form-data' },
});
navigate('/posts');

View File

@@ -44,7 +44,7 @@ export default function EditOrganizationPage() {
useEffect(() => {
const fetchData = async () => {
try {
const response = await axiosInstance.get('/api/organizations/' + id);
const response = await axiosInstance.get('/organizations/' + id);
const data = response.data;
setData(data);

View File

@@ -29,7 +29,7 @@ export default function OrganizationPage() {
const loadOrganizations = async () => {
try {
const { data } = await axiosInstance.get('/api/organization');
const { data } = await axiosInstance.get('/organization');
setRows(data);
} catch {
setError('Fehler beim Laden der Organisationen');
@@ -57,7 +57,7 @@ export default function OrganizationPage() {
ownerEmail: createForm.email
};
await axiosInstance.post('/api/organization', jsonPayload);
await axiosInstance.post('/organization', jsonPayload);
await loadOrganizations(); // Liste neu laden
handleCreateClose();
@@ -79,7 +79,7 @@ export default function OrganizationPage() {
if (!window.confirm('Organisation wirklich löschen?')) return;
try {
await axiosInstance.delete(`/api/organization/${id}`);
await axiosInstance.delete(`/organization/${id}`);
setRows((prev) => prev.filter((r) => r.id !== id));
} catch {
alert('Löschen fehlgeschlagen');

View File

@@ -18,7 +18,7 @@ export default function PostsPage() {
const navigate = useNavigate();
useEffect(() => {
axiosInstance.get('/api/news')
axiosInstance.get('/news')
.then(({ data }) => setRows(data))
.catch(() => setError('Fehler beim Laden der News'))
.finally(() => setLoading(false));
@@ -27,7 +27,7 @@ export default function PostsPage() {
const handleDelete = async (id) => {
if (!window.confirm('News wirklich löschen?')) return;
try {
await axiosInstance.delete(`/api/news/${id}`);
await axiosInstance.delete(`/news/${id}`);
setRows((prev) => prev.filter((r) => r.id !== id));
} catch {
alert('Löschen fehlgeschlagen');

View File

@@ -18,7 +18,7 @@ export default function PushPage() {
setLoading(true);
setResult(null);
try {
await axiosInstance.post('/api/push', { title, body, target });
await axiosInstance.post('/push', { title, body, target });
setResult({ type: 'success', msg: 'Notification erfolgreich gesendet!' });
setTitle('');
setBody('');

View File

@@ -28,7 +28,7 @@ export default function UsersPage() {
const [deleting, setDeleting] = useState(false);
useEffect(() => {
axiosInstance.get('/api/users')
axiosInstance.get('/users')
.then(({ data }) => setRows(data))
.catch(() => setError('Fehler beim Laden der Nutzer'))
.finally(() => setLoading(false));
@@ -58,7 +58,7 @@ export default function UsersPage() {
setSaving(true);
setSaveError('');
try {
const { data } = await axiosInstance.put(`/api/users/${editUser.id}`, editForm);
const { data } = await axiosInstance.put(`/users/${editUser.id}`, editForm);
setRows((prev) => prev.map((r) => r.id === editUser.id ? { ...r, ...data } : r));
setSnackbar(`Änderungen an ${editUser.nickname} erfolgreich gespeichert.`);
handleEditClose();
@@ -72,7 +72,7 @@ export default function UsersPage() {
const handlePasswordReset = async (user) => {
setResetting(user.id);
try {
await axiosInstance.post(`/api/users/${user.id}/reset-password`);
await axiosInstance.post(`/users/${user.id}/reset-password`);
setSnackbar(`Passwort für ${user.nickname} wurde zurückgesetzt — E-Mail wurde versendet.`);
} catch (err) {
setSnackbar(err.response?.data?.message ?? 'Zurücksetzen fehlgeschlagen');
@@ -84,7 +84,7 @@ export default function UsersPage() {
const handleDeleteConfirm = async () => {
setDeleting(true);
try {
await axiosInstance.delete(`/api/users/${deleteUser.id}`);
await axiosInstance.delete(`/users/${deleteUser.id}`);
setRows((prev) => prev.filter((r) => r.id !== deleteUser.id));
setSnackbar(`Nutzer ${deleteUser.nickname} wurde gelöscht.`);
setDeleteUser(null);