5f9ace8eb1
Added the ability to 'Undo mark all as done' todos marked as complete with 'Mark all as done' in the 'Todo' tab of the Todo dashboard. The operation undos only the todo previously marked as done with the 'Mark al as done' button.
30 lines
816 B
Ruby
30 lines
816 B
Ruby
module API
|
|
module V3
|
|
class Todos < Grape::API
|
|
before { authenticate! }
|
|
|
|
resource :todos do
|
|
desc 'Mark a todo as done' do
|
|
success ::API::Entities::Todo
|
|
end
|
|
params do
|
|
requires :id, type: Integer, desc: 'The ID of the todo being marked as done'
|
|
end
|
|
delete ':id' do
|
|
todo = current_user.todos.find(params[:id])
|
|
TodoService.new.mark_todos_as_done([todo], current_user)
|
|
|
|
present todo.reload, with: ::API::Entities::Todo, current_user: current_user
|
|
end
|
|
|
|
desc 'Mark all todos as done'
|
|
delete do
|
|
status(200)
|
|
|
|
todos = TodosFinder.new(current_user, params).execute
|
|
TodoService.new.mark_todos_as_done(todos, current_user).size
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|