summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorÁbner Silva de Oliveira <abner.silva@gmail.com>2014-03-21 06:18:19 -0300
committerÁbner Silva de Oliveira <abner.silva@gmail.com>2014-03-21 06:25:25 -0300
commit44aa6b90ddde3a7babc6ed9f50d73040d6184789 (patch)
tree1f1107a5b6c1535f5e2635c88d95a4f4b5a7cbe6
parentfb919a631c16f0046c5599a9e9e9fa38ff4a699a (diff)
downloadgitlab-ce-44aa6b90ddde3a7babc6ed9f50d73040d6184789.tar.gz
added api method to return labels of a given project
-rw-r--r--lib/api/entities.rb4
-rw-r--r--lib/api/projects.rb9
-rw-r--r--spec/requests/api/labels_spec.rb26
3 files changed, 39 insertions, 0 deletions
diff --git a/lib/api/entities.rb b/lib/api/entities.rb
index 8b4519af2d1..9fa8506926c 100644
--- a/lib/api/entities.rb
+++ b/lib/api/entities.rb
@@ -187,5 +187,9 @@ module API
end
end
end
+
+ class Label < Grape::Entity
+ expose :name
+ end
end
end
diff --git a/lib/api/projects.rb b/lib/api/projects.rb
index 4d48d2194f8..40b5ce86c93 100644
--- a/lib/api/projects.rb
+++ b/lib/api/projects.rb
@@ -215,6 +215,15 @@ module API
@users = paginate @users
present @users, with: Entities::User
end
+
+ # Get a labels list
+ #
+ # Example Request:
+ # GET /users
+ get ':id/labels' do
+ @labels = user_project.issues_labels
+ present @labels, with: Entities::Label
+ end
end
end
end
diff --git a/spec/requests/api/labels_spec.rb b/spec/requests/api/labels_spec.rb
new file mode 100644
index 00000000000..ba5efb6c603
--- /dev/null
+++ b/spec/requests/api/labels_spec.rb
@@ -0,0 +1,26 @@
+require 'spec_helper'
+
+describe API::API do
+ include ApiHelpers
+ before(:each) { ActiveRecord::Base.observers.enable(:user_observer) }
+ after(:each) { ActiveRecord::Base.observers.disable(:user_observer) }
+
+ let(:user) { create(:user) }
+ let!(:project) { create(:project, namespace: user.namespace ) }
+ let!(:issue) { create(:issue, author: user, assignee: user, project: project, :label_list => "label1, label2") }
+ before { project.team << [user, :reporter] }
+
+
+ describe "GET /projects/:id/labels" do
+ it "should return project labels" do
+ get api("/projects/#{project.id}/labels", user)
+ response.status.should == 200
+ json_response.should be_an Array
+ json_response.first['name'].should == 'label1'
+ json_response.last['name'].should == 'label2'
+ end
+ end
+
+
+end
+