debian-mirror-gitlab/app/controllers/projects/todos_controller.rb

32 lines
736 B
Ruby
Raw Normal View History

class Projects::TodosController < Projects::ApplicationController
2016-06-22 15:30:34 +05:30
before_action :authenticate_user!, only: [:create]
2016-06-22 15:30:34 +05:30
def create
todo = TodoService.new.mark_todo(issuable, current_user)
render json: {
2016-08-24 12:49:21 +05:30
count: TodosFinder.new(current_user, state: :pending).execute.count,
2016-06-22 15:30:34 +05:30
delete_path: dashboard_todo_path(todo)
}
end
private
def issuable
@issuable ||= begin
case params[:issuable_type]
when "issue"
2016-06-22 15:30:34 +05:30
issue = @project.issues.find(params[:issuable_id])
if can?(current_user, :read_issue, issue)
issue
else
render_404
end
when "merge_request"
@project.merge_requests.find(params[:issuable_id])
end
end
end
end