Phill Pover b078afc2af
All checks were successful
Music Collection CI Workflow / test (./backend) (push) Successful in 22s
Music Collection CI Workflow / test (./frontend) (push) Successful in 27s
Music Collection CI Workflow / build-and-push-images (./backend/Dockerfile, git.anatid.net/tabris/msuic-collection-backend, ./backend) (push) Successful in 49s
Music Collection CI Workflow / build-and-push-images (./frontend/Dockerfile, git.anatid.net/tabris/music-collection-frontend, ./frontend) (push) Successful in 1m45s
Music Collection CI Workflow / deploy (push) Successful in 23s
Reworking actions
2025-04-06 21:43:03 +01:00

110 lines
2.9 KiB
TypeScript

'use server'
export async function getAlbums() {
return fetch('https://api.anatid.net/album');
}
export async function getAlbum(id: number) {
return fetch(`https://api.anatid.net/album/${id}`, {
method: "GET",
headers: { "Content-Type": "application/json" },
});
}
export async function createAlbum(formData: FormData) {
const title = formData.get('title');
const artist = formData.get('artist');
const genre = formData.get('genre');
return fetch("https://api.anatid.net/album", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
title: title,
artist: artist,
genre: genre,
})
});
}
export async function updateAlbum(formData: FormData) {
const id = formData.get('id');
const title = formData.get('title');
const artist = formData.get('artist');
const genre = formData.get('genre');
return fetch("https://api.anatid.net/album", {
method: "PUT",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
id: id,
title: title,
artist: artist,
genre: genre,
})
});
}
export async function deleteAlbum(formData: FormData) {
const id = formData.get('id');
return fetch("https://api.anatid.net/album", {
method: "DELETE",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
id: id,
})
});
}
export async function getSongs() {
return fetch("https://api.anatid.net/song/");
}
export async function getSong(id: number) {
return fetch(`https://api.anatid.net/song/${id}`, {
method: "GET",
headers: { "Content-Type": "application/json" },
});
}
export async function createSong(formData: FormData) {
const albumId = formData.get('album-id');
const title = formData.get('title');
const duration = formData.get('duration');
return fetch("https://api.anatid.net/song", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
albumId: albumId,
title: title,
duration: duration,
})
});
}
export async function updateSong(formData: FormData) {
const id = formData.get('id');
const albumId = formData.get('album-id');
const title = formData.get('title');
const duration = formData.get('duration');
return fetch("https://api.anatid.net/song", {
method: "PUT",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
id: id,
albumId: albumId,
title: title,
duration: duration,
})
});
}
export async function deleteSong(formData: FormData) {
const id = formData.get('id');
return fetch("https://api.anatid.net/song", {
method: "DELETE",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
id: id,
})
});
}