summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJames Lopez <james@jameslopez.es>2017-07-05 16:27:32 +0200
committerJames Lopez <james@jameslopez.es>2017-07-05 17:02:20 +0200
commit98d7ae9568d59992dd1e78a13c5d60f116db1183 (patch)
tree62c51c524ef6e455f3b3ab2cee6512793fd2440f
parentf25cde6df8794aaf24c2f68d3a551b131060a1ee (diff)
downloadgitlab-ce-98d7ae9568d59992dd1e78a13c5d60f116db1183.tar.gz
add user agent details API endpoints to issues and snippets
-rw-r--r--lib/api/issues.rb17
-rw-r--r--lib/api/snippets.rb17
-rw-r--r--spec/requests/api/issues_spec.rb2
3 files changed, 35 insertions, 1 deletions
diff --git a/lib/api/issues.rb b/lib/api/issues.rb
index 09dca0dff8b..88dd31739da 100644
--- a/lib/api/issues.rb
+++ b/lib/api/issues.rb
@@ -241,6 +241,23 @@ module API
present paginate(merge_requests), with: Entities::MergeRequestBasic, current_user: current_user, project: user_project
end
+
+ desc 'Get the user agent details for an issue' do
+ success Entities::UserAgentDetail
+ end
+ params do
+ requires :issue_iid, type: Integer, desc: 'The internal ID of a project issue'
+ end
+ get ":id/issues/:issue_iid/user_agent_detail" do
+ authenticated_as_admin!
+
+ issue = find_project_issue(params[:issue_iid])
+
+ return not_found!('Issue') unless issue
+ return not_found!('UserAgentDetail') unless issue.user_agent_detail
+
+ present issue.user_agent_detail, with: Entities::UserAgentDetail, current_user: current_user, project: user_project
+ end
end
end
end
diff --git a/lib/api/snippets.rb b/lib/api/snippets.rb
index c630c24c339..db4e0b0b013 100644
--- a/lib/api/snippets.rb
+++ b/lib/api/snippets.rb
@@ -140,6 +140,23 @@ module API
content_type 'text/plain'
present snippet.content
end
+
+ desc 'Get the user agent details for a snippet' do
+ success Entities::UserAgentDetail
+ end
+ params do
+ requires :id, type: Integer, desc: 'The ID of a snippet'
+ end
+ get ":id/user_agent_detail" do
+ authenticated_as_admin!
+
+ snippet = Snippet.find_by(id: params[:id])
+
+ return not_found!('Snippet') unless snippet
+ return not_found!('UserAgentDetail') unless snippet.user_agent_detail
+
+ present snippet.user_agent_detail, with: Entities::UserAgentDetail
+ end
end
end
end
diff --git a/spec/requests/api/issues_spec.rb b/spec/requests/api/issues_spec.rb
index 2fb9c3ee3ad..b60756741fc 100644
--- a/spec/requests/api/issues_spec.rb
+++ b/spec/requests/api/issues_spec.rb
@@ -1463,7 +1463,7 @@ describe API::Issues do
end
describe "GET /projects/:id/issues/:issue_iid/user_agent_detail" do
- let(:user_agent_detail) { create(:user_agent_detail, subject: issue) }
+ let!(:user_agent_detail) { create(:user_agent_detail, subject: issue) }
it 'exposes known attributes' do
get api("/projects/#{project.id}/issues/#{issue.iid}/user_agent_detail", admin)