add spec and project snippet user agent details endpoint
This commit is contained in:
parent
5173955fd4
commit
a9e8af3386
4 changed files with 39 additions and 0 deletions
|
@ -149,4 +149,5 @@ Example response:
|
|||
"akismet_submitted": false
|
||||
}
|
||||
```
|
||||
|
||||
[ce-[ce-29508]: https://gitlab.com/gitlab-org/gitlab-ce/issues/29508]: https://gitlab.com/gitlab-org/gitlab-ce/issues/29508
|
||||
|
|
|
@ -264,4 +264,5 @@ Example response:
|
|||
"akismet_submitted": false
|
||||
}
|
||||
```
|
||||
|
||||
[ce-[ce-29508]: https://gitlab.com/gitlab-org/gitlab-ce/issues/29508]: https://gitlab.com/gitlab-org/gitlab-ce/issues/29508
|
||||
|
|
|
@ -131,6 +131,22 @@ module API
|
|||
content_type 'text/plain'
|
||||
present snippet.content
|
||||
end
|
||||
|
||||
desc 'Get the user agent details for a project snippet' do
|
||||
success Entities::UserAgentDetail
|
||||
end
|
||||
params do
|
||||
requires :snippet_id, type: Integer, desc: 'The ID of a project snippet'
|
||||
end
|
||||
get ":id/snippets/:snippet_id/user_agent_detail" do
|
||||
authenticated_as_admin!
|
||||
|
||||
snippet = Snippet.find_by!(id: params[:id])
|
||||
|
||||
return not_found!('UserAgentDetail') unless snippet.user_agent_detail
|
||||
|
||||
present snippet.user_agent_detail, with: Entities::UserAgentDetail
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -242,4 +242,25 @@ describe API::ProjectSnippets do
|
|||
expect(json_response['message']).to eq('404 Snippet Not Found')
|
||||
end
|
||||
end
|
||||
|
||||
describe "GET /projects/:project_id/snippets/:id/user_agent_detail" do
|
||||
let(:admin) { create(:admin) }
|
||||
let(:snippet) { create(:project_snippet, author: admin) }
|
||||
let!(:user_agent_detail) { create(:user_agent_detail, subject: snippet) }
|
||||
|
||||
it 'exposes known attributes' do
|
||||
get api("/projects/#{snippet.project.id}/snippets/#{snippet.id}/user_agent_detail", admin)
|
||||
|
||||
expect(response).to have_http_status(200)
|
||||
expect(json_response['user_agent']).to eq(user_agent_detail.user_agent)
|
||||
expect(json_response['ip_address']).to eq(user_agent_detail.ip_address)
|
||||
expect(json_response['akismet_submitted']).to eq(user_agent_detail.submitted)
|
||||
end
|
||||
|
||||
it "returns unautorized for non-admin users" do
|
||||
get api("/projects/#{snippet.project.id}/snippets/#{snippet.id}/user_agent_detail", user)
|
||||
|
||||
expect(response).to have_http_status(403)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in a new issue