Skip to content
Snippets Groups Projects
Commit a9e8af33 authored by James Lopez's avatar James Lopez
Browse files

add spec and project snippet user agent details endpoint

parent 5173955f
No related branches found
No related tags found
No related merge requests found
Loading
Loading
@@ -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
Loading
Loading
@@ -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
Loading
Loading
@@ -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
Loading
Loading
@@ -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
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment