Commit 44aa6b90ddde3a7babc6ed9f50d73040d6184789

Authored by Ábner Oliveira
1 parent fb919a63

added api method to return labels of a given project

lib/api/entities.rb
... ... @@ -187,5 +187,9 @@ module API
187 187 end
188 188 end
189 189 end
  190 +
  191 + class Label < Grape::Entity
  192 + expose :name
  193 + end
190 194 end
191 195 end
... ...
lib/api/projects.rb
... ... @@ -215,6 +215,15 @@ module API
215 215 @users = paginate @users
216 216 present @users, with: Entities::User
217 217 end
  218 +
  219 + # Get a labels list
  220 + #
  221 + # Example Request:
  222 + # GET /users
  223 + get ':id/labels' do
  224 + @labels = user_project.issues_labels
  225 + present @labels, with: Entities::Label
  226 + end
218 227 end
219 228 end
220 229 end
... ...
spec/requests/api/labels_spec.rb 0 → 100644
... ... @@ -0,0 +1,26 @@
  1 +require 'spec_helper'
  2 +
  3 +describe API::API do
  4 + include ApiHelpers
  5 + before(:each) { ActiveRecord::Base.observers.enable(:user_observer) }
  6 + after(:each) { ActiveRecord::Base.observers.disable(:user_observer) }
  7 +
  8 + let(:user) { create(:user) }
  9 + let!(:project) { create(:project, namespace: user.namespace ) }
  10 + let!(:issue) { create(:issue, author: user, assignee: user, project: project, :label_list => "label1, label2") }
  11 + before { project.team << [user, :reporter] }
  12 +
  13 +
  14 + describe "GET /projects/:id/labels" do
  15 + it "should return project labels" do
  16 + get api("/projects/#{project.id}/labels", user)
  17 + response.status.should == 200
  18 + json_response.should be_an Array
  19 + json_response.first['name'].should == 'label1'
  20 + json_response.last['name'].should == 'label2'
  21 + end
  22 + end
  23 +
  24 +
  25 +end
  26 +
... ...