Files
PaskaJoululeffa2024-frontend/src/routes/admin/+page.server.ts
T
2024-12-02 15:26:24 +02:00

112 lines
3.1 KiB
TypeScript

import { error } from '@sveltejs/kit';
import type { Actions } from './$types';
const api_url = import.meta.env.VITE_API_URL;
export const actions: Actions = {
addUser: async ({ request, fetch }) => {
const formData = await request.formData();
const userData = Object.fromEntries(formData);
const response = await fetch(`${api_url}/admin/user`, {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify(userData)
});
if (!response.ok) {
throw error(response.status, 'Failed to add user');
}
return { success: true };
},
deleteUser: async ({ request, fetch }) => {
const formData = await request.formData();
const userId = formData.get('userId');
const response = await fetch(`${api_url}/admin/user/${userId}`, {
method: 'DELETE'
});
if (!response.ok) {
throw error(response.status, 'Failed to delete user');
}
return { success: true };
},
addMovie: async ({ request, fetch }) => {
const formData = await request.formData();
const movieData = Object.fromEntries(formData);
const response = await fetch(`${api_url}/admin/movie`, {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify(movieData)
});
if (!response.ok) {
throw error(response.status, 'Failed to add movie');
}
return { success: true };
},
setMovieWatched: async ({ request, fetch }) => {
const formData = await request.formData();
const movieId = formData.get('movieId');
const response = await fetch(`${api_url}/admin/movie/${movieId}`, {
method: 'PATCH',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({ is_watched: true })
});
if (!response.ok) {
throw error(response.status, 'Failed to update movie status');
}
return { success: true };
},
addCard: async ({ request, fetch }) => {
const formData = await request.formData();
const cardData = Object.fromEntries(formData);
const response = await fetch(`${api_url}/admin/card`, {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify(cardData)
});
if (!response.ok) {
throw error(response.status, 'Failed to add card');
}
return { success: true };
},
deleteCard: async ({ request, fetch }) => {
const formData = await request.formData();
const cardId = formData.get('cardId');
const response = await fetch(`${api_url}/admin/card/${cardId}`, {
method: 'DELETE'
});
if (!response.ok) {
throw error(response.status, 'Failed to delete card');
}
return { success: true };
}
};