Skip to content

Commit 2dd1681

Browse files
authored
Merge pull request #394 from meilisearch/bump-meilisearch-v0.30.0-add-delete-tasks
Add `delete_tasks` method
2 parents fafaa20 + 6f920dc commit 2dd1681

File tree

4 files changed

+41
-2
lines changed

4 files changed

+41
-2
lines changed

lib/meilisearch/client.rb

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -126,6 +126,10 @@ def cancel_tasks(options = {})
126126
task_endpoint.cancel_tasks(options)
127127
end
128128

129+
def delete_tasks(options = {})
130+
task_endpoint.delete_tasks(options)
131+
end
132+
129133
def tasks(options = {})
130134
task_endpoint.task_list(options)
131135
end

lib/meilisearch/http_request.rb

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,11 +73,12 @@ def http_patch(relative_path = '', body = nil, query_params = nil)
7373
)
7474
end
7575

76-
def http_delete(relative_path = '')
76+
def http_delete(relative_path = '', query_params = nil)
7777
send_request(
7878
proc { |path, config| self.class.delete(path, config) },
7979
relative_path,
8080
config: {
81+
query_params: query_params,
8182
headers: remove_headers(@headers.dup, 'Content-Type'),
8283
options: @options
8384
}

lib/meilisearch/task.rb

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,10 @@ def cancel_tasks(options)
3232
http_post '/tasks/cancel', nil, Utils.parse_query(options, ALLOWED_CANCELATION_PARAMS)
3333
end
3434

35+
def delete_tasks(options)
36+
http_delete '/tasks', Utils.parse_query(options, ALLOWED_CANCELATION_PARAMS)
37+
end
38+
3539
def wait_for_task(task_uid, timeout_in_ms = 5000, interval_in_ms = 50)
3640
Timeout.timeout(timeout_in_ms.to_f / 1000) do
3741
loop do

spec/meilisearch/client/tasks_spec.rb

Lines changed: 31 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -177,9 +177,39 @@
177177
task = client.cancel_tasks(uids: [1, 2])
178178
task = client.wait_for_task(task['taskUid'])
179179

180-
expect(task['details']['originalFilters']).to eq('uids=1%2C2')
180+
expect(task['details']['originalFilter']).to eq('?uids=1%2C2')
181181
expect(task['details']['matchedTasks']).to be_a(Integer)
182182
expect(task['details']['canceledTasks']).to be_a(Integer)
183183
end
184184
end
185+
186+
describe '#client.delete_tasks' do
187+
it 'ensures supports to all available filters' do
188+
allow(MeiliSearch::Utils).to receive(:transform_attributes).and_call_original
189+
190+
client.delete_tasks(
191+
canceled_by: [1, 2], uids: [2], foo: 'bar',
192+
before_enqueued_at: '2022-01-20', after_enqueued_at: '2022-01-20',
193+
before_started_at: '2022-01-20', after_started_at: '2022-01-20',
194+
before_finished_at: '2022-01-20', after_finished_at: '2022-01-20'
195+
)
196+
197+
expect(MeiliSearch::Utils).to have_received(:transform_attributes)
198+
.with(
199+
canceled_by: [1, 2], uids: [2],
200+
before_enqueued_at: '2022-01-20', after_enqueued_at: '2022-01-20',
201+
before_started_at: '2022-01-20', after_started_at: '2022-01-20',
202+
before_finished_at: '2022-01-20', after_finished_at: '2022-01-20'
203+
)
204+
end
205+
206+
it 'has fields in the details field' do
207+
task = client.delete_tasks(uids: [1, 2])
208+
task = client.wait_for_task(task['taskUid'])
209+
210+
expect(task['details']['originalFilter']).to eq('?uids=1%2C2')
211+
expect(task['details']['matchedTasks']).to be_a(Integer)
212+
expect(task['details']['deletedTasks']).to be_a(Integer)
213+
end
214+
end
185215
end

0 commit comments

Comments
 (0)