59 lines
1.2 KiB
JavaScript
59 lines
1.2 KiB
JavaScript
import { apiClient } from './userApi'
|
|
|
|
// Create a new deck in the backend
|
|
export const createDeck = async (deck) => {
|
|
try {
|
|
const response = await apiClient.post('/decks', deck)
|
|
return response.data
|
|
} catch (err) {
|
|
throw err
|
|
}
|
|
}
|
|
|
|
// Get paginated decks (authenticated)
|
|
export const getDecksPage = async (from = 0, to = 49) => {
|
|
try {
|
|
const response = await apiClient.get(`/decks/page/${from}/${to}`)
|
|
return response.data
|
|
} catch (err) {
|
|
throw err
|
|
}
|
|
}
|
|
|
|
// Get a specific deck by ID (authenticated)
|
|
export const getDeckById = async (deckId) => {
|
|
try {
|
|
const response = await apiClient.get(`/decks/${deckId}`)
|
|
return response.data
|
|
} catch (err) {
|
|
throw err
|
|
}
|
|
}
|
|
|
|
// Update an existing deck (authenticated)
|
|
export const updateDeck = async (deckId, deck) => {
|
|
try {
|
|
const response = await apiClient.patch(`/decks/${deckId}`, deck)
|
|
return response.data
|
|
} catch (err) {
|
|
throw err
|
|
}
|
|
}
|
|
|
|
// Delete a deck (soft delete) (authenticated)
|
|
export const deleteDeck = async (deckId) => {
|
|
try {
|
|
const response = await apiClient.delete(`/decks/${deckId}`)
|
|
return response.data
|
|
} catch (err) {
|
|
throw err
|
|
}
|
|
}
|
|
|
|
export default {
|
|
createDeck,
|
|
getDeckById,
|
|
updateDeck,
|
|
deleteDeck
|
|
}
|