diff --git a/src/endpoints/Campaigns/Client.ts b/src/endpoints/Campaigns/Client.ts index d00c9ef0..731b62de 100644 --- a/src/endpoints/Campaigns/Client.ts +++ b/src/endpoints/Campaigns/Client.ts @@ -2,7 +2,7 @@ import type { ProgressPromise } from '@prezly/progress-promise'; import type { DeferredJobsApiClient } from '../../api'; import { routing } from '../../routing'; -import type { Campaign } from '../../types'; +import type { BulkDeletePayload, Campaign } from '../../types'; import { Query, SortOrder } from '../../types'; import { toIso8601 } from '../../utils'; @@ -56,6 +56,15 @@ export function createClient(api: DeferredJobsApiClient) { return api.delete(`${routing.campaignsUrl}/${id}`); } + function bulkDelete( + payload: BulkDeletePayload, + ): ProgressPromise<{ records_deleted_number: number }> { + const { search, query } = payload; + return api.delete(routing.campaignsUrl, { + payload: { search, query }, + }); + } + async function test(id: Campaign['id'], emails: string[]): Promise { return api.post(`${routing.campaignsUrl}/${id}/test`, { payload: { emails }, @@ -109,5 +118,6 @@ export function createClient(api: DeferredJobsApiClient) { create, update, delete: doDelete, + bulkDelete, }; } diff --git a/src/endpoints/Stories/Client.ts b/src/endpoints/Stories/Client.ts index 1cd6ab24..d3a32d8d 100644 --- a/src/endpoints/Stories/Client.ts +++ b/src/endpoints/Stories/Client.ts @@ -4,7 +4,7 @@ import type { DeferredJobsApiClient } from '../../api'; import { ApiError, HttpCodes } from '../../http'; import { routing } from '../../routing'; import { SortOrder } from '../../types'; -import type { ExtendedStory, Query, Story, StoriesBulkSelector } from '../../types'; +import type { BulkDeletePayload, ExtendedStory, Query, Story } from '../../types'; import type { AutosaveRequest, @@ -456,12 +456,12 @@ export function createClient(api: DeferredJobsApiClient) { await api.delete(url); } - async function bulkDelete( - selector: StoriesBulkSelector, + function bulkDelete( + payload: BulkDeletePayload, ): ProgressPromise<{ records_deleted_number: number }> { - const { query } = selector; + const { search, query } = payload; return api.delete(routing.storiesUrl, { - payload: { query }, + payload: { search, query }, }); } diff --git a/src/types/BulkDeletePayload.ts b/src/types/BulkDeletePayload.ts new file mode 100644 index 00000000..4749116b --- /dev/null +++ b/src/types/BulkDeletePayload.ts @@ -0,0 +1,6 @@ +import type { Query } from './common'; + +export interface BulkDeletePayload { + search?: string; + query?: Query; +} diff --git a/src/types/StoriesBulkSelector.ts b/src/types/StoriesBulkSelector.ts deleted file mode 100644 index 3448c498..00000000 --- a/src/types/StoriesBulkSelector.ts +++ /dev/null @@ -1,5 +0,0 @@ -import type { Query } from './common'; - -export interface StoriesBulkSelector { - query: Query; -} diff --git a/src/types/index.ts b/src/types/index.ts index 3ba4b377..eba1ddf4 100644 --- a/src/types/index.ts +++ b/src/types/index.ts @@ -39,7 +39,7 @@ export * from './SenderAddress'; export * from './SenderDomain'; export * from './Snippet'; export * from './SortOrder'; -export * from './StoriesBulkSelector'; +export * from './BulkDeletePayload'; export * from './Story'; export * from './User'; export * from './UserAccount';