add bulk delete mutations for collection items
This commit is contained in:
parent
22d459f475
commit
a56d8f1870
3 changed files with 105 additions and 0 deletions
|
|
@ -144,6 +144,22 @@ export class CollectionAdapter extends BaseAdapter {
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Removes multiple characters from the collection in a single batch request
|
||||||
|
*/
|
||||||
|
async removeCharactersBatch(ids: string[]): Promise<{ deleted: number }> {
|
||||||
|
if (ids.length === 0) return { deleted: 0 }
|
||||||
|
|
||||||
|
const response = await this.request<{
|
||||||
|
meta: { deleted: number }
|
||||||
|
}>('/collection/characters/batch_destroy', {
|
||||||
|
method: 'DELETE',
|
||||||
|
body: { ids }
|
||||||
|
})
|
||||||
|
|
||||||
|
return response.meta
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the IDs of all characters in a user's collection
|
* Gets the IDs of all characters in a user's collection
|
||||||
* Useful for filtering out already-owned characters in the add modal
|
* Useful for filtering out already-owned characters in the add modal
|
||||||
|
|
@ -261,6 +277,22 @@ export class CollectionAdapter extends BaseAdapter {
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Removes multiple weapons from the collection in a single batch request
|
||||||
|
*/
|
||||||
|
async removeWeaponsBatch(ids: string[]): Promise<{ deleted: number }> {
|
||||||
|
if (ids.length === 0) return { deleted: 0 }
|
||||||
|
|
||||||
|
const response = await this.request<{
|
||||||
|
meta: { deleted: number }
|
||||||
|
}>('/collection/weapons/batch_destroy', {
|
||||||
|
method: 'DELETE',
|
||||||
|
body: { ids }
|
||||||
|
})
|
||||||
|
|
||||||
|
return response.meta
|
||||||
|
}
|
||||||
|
|
||||||
// ============================================
|
// ============================================
|
||||||
// Collection Summons
|
// Collection Summons
|
||||||
// ============================================
|
// ============================================
|
||||||
|
|
@ -358,6 +390,22 @@ export class CollectionAdapter extends BaseAdapter {
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Removes multiple summons from the collection in a single batch request
|
||||||
|
*/
|
||||||
|
async removeSummonsBatch(ids: string[]): Promise<{ deleted: number }> {
|
||||||
|
if (ids.length === 0) return { deleted: 0 }
|
||||||
|
|
||||||
|
const response = await this.request<{
|
||||||
|
meta: { deleted: number }
|
||||||
|
}>('/collection/summons/batch_destroy', {
|
||||||
|
method: 'DELETE',
|
||||||
|
body: { ids }
|
||||||
|
})
|
||||||
|
|
||||||
|
return response.meta
|
||||||
|
}
|
||||||
|
|
||||||
// ============================================
|
// ============================================
|
||||||
// Collection Job Accessories
|
// Collection Job Accessories
|
||||||
// ============================================
|
// ============================================
|
||||||
|
|
|
||||||
|
|
@ -103,6 +103,20 @@ export function useDeleteCollectionArtifact() {
|
||||||
}))
|
}))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Delete multiple collection artifacts in a single batch
|
||||||
|
*/
|
||||||
|
export function useBulkDeleteCollectionArtifacts() {
|
||||||
|
const queryClient = useQueryClient()
|
||||||
|
|
||||||
|
return createMutation(() => ({
|
||||||
|
mutationFn: (ids: string[]) => artifactAdapter.deleteCollectionArtifactsBatch(ids),
|
||||||
|
onSuccess: () => {
|
||||||
|
queryClient.invalidateQueries({ queryKey: artifactKeys.collectionBase })
|
||||||
|
}
|
||||||
|
}))
|
||||||
|
}
|
||||||
|
|
||||||
// ============================================================================
|
// ============================================================================
|
||||||
// Grid Artifact Mutations (Equipped on Characters)
|
// Grid Artifact Mutations (Equipped on Characters)
|
||||||
// ============================================================================
|
// ============================================================================
|
||||||
|
|
|
||||||
|
|
@ -129,6 +129,21 @@ export function useRemoveCharacterFromCollection() {
|
||||||
}))
|
}))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Remove multiple characters from collection in a single batch
|
||||||
|
*/
|
||||||
|
export function useBulkRemoveCharactersFromCollection() {
|
||||||
|
const queryClient = useQueryClient()
|
||||||
|
|
||||||
|
return createMutation(() => ({
|
||||||
|
mutationFn: (ids: string[]) => collectionAdapter.removeCharactersBatch(ids),
|
||||||
|
onSuccess: () => {
|
||||||
|
queryClient.invalidateQueries({ queryKey: collectionKeys.characters() })
|
||||||
|
queryClient.invalidateQueries({ queryKey: collectionKeys.characterIds() })
|
||||||
|
}
|
||||||
|
}))
|
||||||
|
}
|
||||||
|
|
||||||
// ============================================================================
|
// ============================================================================
|
||||||
// Weapon Mutations
|
// Weapon Mutations
|
||||||
// ============================================================================
|
// ============================================================================
|
||||||
|
|
@ -191,6 +206,20 @@ export function useRemoveWeaponFromCollection() {
|
||||||
}))
|
}))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Remove multiple weapons from collection in a single batch
|
||||||
|
*/
|
||||||
|
export function useBulkRemoveWeaponsFromCollection() {
|
||||||
|
const queryClient = useQueryClient()
|
||||||
|
|
||||||
|
return createMutation(() => ({
|
||||||
|
mutationFn: (ids: string[]) => collectionAdapter.removeWeaponsBatch(ids),
|
||||||
|
onSuccess: () => {
|
||||||
|
queryClient.invalidateQueries({ queryKey: collectionKeys.weapons() })
|
||||||
|
}
|
||||||
|
}))
|
||||||
|
}
|
||||||
|
|
||||||
// ============================================================================
|
// ============================================================================
|
||||||
// Summon Mutations
|
// Summon Mutations
|
||||||
// ============================================================================
|
// ============================================================================
|
||||||
|
|
@ -253,6 +282,20 @@ export function useRemoveSummonFromCollection() {
|
||||||
}))
|
}))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Remove multiple summons from collection in a single batch
|
||||||
|
*/
|
||||||
|
export function useBulkRemoveSummonsFromCollection() {
|
||||||
|
const queryClient = useQueryClient()
|
||||||
|
|
||||||
|
return createMutation(() => ({
|
||||||
|
mutationFn: (ids: string[]) => collectionAdapter.removeSummonsBatch(ids),
|
||||||
|
onSuccess: () => {
|
||||||
|
queryClient.invalidateQueries({ queryKey: collectionKeys.summons() })
|
||||||
|
}
|
||||||
|
}))
|
||||||
|
}
|
||||||
|
|
||||||
// ============================================================================
|
// ============================================================================
|
||||||
// Job Accessory Mutations
|
// Job Accessory Mutations
|
||||||
// ============================================================================
|
// ============================================================================
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue