Some checks are pending
Deploy Admin Panel / Deploy Admin Panel (push) Waiting to run
Deploy Admin Panel / Admin Panel Verification (push) Blocked by required conditions
Deploy Mnemo Cards / Deploy Backend (push) Waiting to run
Deploy Mnemo Cards / Deploy Web App (push) Blocked by required conditions
Deploy Mnemo Cards / Final Verification (push) Blocked by required conditions
38 lines
1.2 KiB
TypeScript
38 lines
1.2 KiB
TypeScript
import { adminApiClient } from './client'
|
|
import type { GameCardDto, PaginatedResponse } from '@/types/models'
|
|
|
|
export const cardsApi = {
|
|
// Get all cards with pagination and search
|
|
getCards: async (params?: {
|
|
page?: number
|
|
limit?: number
|
|
search?: string
|
|
}): Promise<PaginatedResponse<GameCardDto>> => {
|
|
const response = await adminApiClient.get('/api/v2/admin/cards', {
|
|
params: {
|
|
page: params?.page || 1,
|
|
limit: params?.limit || 20,
|
|
search: params?.search,
|
|
},
|
|
})
|
|
return response.data
|
|
},
|
|
|
|
// Get a specific card by ID
|
|
getCard: async (cardId: number): Promise<GameCardDto> => {
|
|
const response = await adminApiClient.get(`/api/v2/admin/cards/${cardId}`)
|
|
return response.data
|
|
},
|
|
|
|
// Create or update a card
|
|
upsertCard: async (card: GameCardDto): Promise<{ success: boolean; card: GameCardDto }> => {
|
|
const response = await adminApiClient.post('/api/v2/admin/cards', card)
|
|
return response.data
|
|
},
|
|
|
|
// Delete a card by ID
|
|
deleteCard: async (cardId: number): Promise<{ success: boolean; message: string }> => {
|
|
const response = await adminApiClient.delete(`/api/v2/admin/cards/${cardId}`)
|
|
return response.data
|
|
},
|
|
}
|