Migrate the Todos API to use `issuable_iid`
- Instead of `issuable_id`
This commit is contained in:
parent
70584e6925
commit
9ccd8b8755
|
@ -5,8 +5,8 @@ module API
|
|||
before { authenticate! }
|
||||
|
||||
ISSUABLE_TYPES = {
|
||||
'merge_requests' => ->(id) { find_merge_request_with_access(id) },
|
||||
'issues' => ->(id) { find_project_issue(id) }
|
||||
'merge_requests' => ->(iid) { find_merge_request_with_access(iid) },
|
||||
'issues' => ->(iid) { find_project_issue(iid) }
|
||||
}.freeze
|
||||
|
||||
params do
|
||||
|
@ -14,13 +14,13 @@ module API
|
|||
end
|
||||
resource :projects do
|
||||
ISSUABLE_TYPES.each do |type, finder|
|
||||
type_id_str = "#{type.singularize}_id".to_sym
|
||||
type_id_str = "#{type.singularize}_iid".to_sym
|
||||
|
||||
desc 'Create a todo on an issuable' do
|
||||
success Entities::Todo
|
||||
end
|
||||
params do
|
||||
requires type_id_str, type: Integer, desc: 'The ID of an issuable'
|
||||
requires type_id_str, type: Integer, desc: 'The IID of an issuable'
|
||||
end
|
||||
post ":id/#{type}/:#{type_id_str}/todo" do
|
||||
issuable = instance_exec(params[type_id_str], &finder)
|
||||
|
|
|
@ -163,7 +163,7 @@ describe API::Todos, api: true do
|
|||
|
||||
shared_examples 'an issuable' do |issuable_type|
|
||||
it 'creates a todo on an issuable' do
|
||||
post api("/projects/#{project_1.id}/#{issuable_type}/#{issuable.id}/todo", john_doe)
|
||||
post api("/projects/#{project_1.id}/#{issuable_type}/#{issuable.iid}/todo", john_doe)
|
||||
|
||||
expect(response.status).to eq(201)
|
||||
expect(json_response['project']).to be_a Hash
|
||||
|
@ -180,7 +180,7 @@ describe API::Todos, api: true do
|
|||
it 'returns 304 there already exist a todo on that issuable' do
|
||||
create(:todo, project: project_1, author: author_1, user: john_doe, target: issuable)
|
||||
|
||||
post api("/projects/#{project_1.id}/#{issuable_type}/#{issuable.id}/todo", john_doe)
|
||||
post api("/projects/#{project_1.id}/#{issuable_type}/#{issuable.iid}/todo", john_doe)
|
||||
|
||||
expect(response.status).to eq(304)
|
||||
end
|
||||
|
@ -195,7 +195,7 @@ describe API::Todos, api: true do
|
|||
guest = create(:user)
|
||||
project_1.team << [guest, :guest]
|
||||
|
||||
post api("/projects/#{project_1.id}/#{issuable_type}/#{issuable.id}/todo", guest)
|
||||
post api("/projects/#{project_1.id}/#{issuable_type}/#{issuable.iid}/todo", guest)
|
||||
|
||||
if issuable_type == 'merge_requests'
|
||||
expect(response).to have_http_status(403)
|
||||
|
|
Loading…
Reference in New Issue