Commit a7aacb4dc4d2cb3875db22dee830553462100a20
Exists in
spb-stable
and in
3 other branches
Merge pull request #6586 from abner/master
added api method to return labels of a given project
Showing
4 changed files
with
54 additions
and
0 deletions
Show diff stats
doc/api/projects.md
... | ... | @@ -621,3 +621,29 @@ Parameters: |
621 | 621 | + query (required) - A string contained in the project name |
622 | 622 | + per_page (optional) - number of projects to return per page |
623 | 623 | + page (optional) - the page to retrieve |
624 | + | |
625 | + | |
626 | +## Labels | |
627 | + | |
628 | +### List project labels | |
629 | + | |
630 | +Get a list of project labels. | |
631 | + | |
632 | +``` | |
633 | +GET /projects/:id/labels | |
634 | +``` | |
635 | + | |
636 | +Parameters: | |
637 | + | |
638 | ++ `id` (required) - The ID or NAMESPACE/PROJECT_NAME of a project | |
639 | + | |
640 | +```json | |
641 | +[ | |
642 | + { | |
643 | + "name":"featute" | |
644 | + }, | |
645 | + { | |
646 | + "name": "bug" | |
647 | + } | |
648 | +] | |
649 | +``` | ... | ... |
lib/api/entities.rb
lib/api/projects.rb
... | ... | @@ -215,6 +215,17 @@ module API |
215 | 215 | @users = paginate @users |
216 | 216 | present @users, with: Entities::User |
217 | 217 | end |
218 | + | |
219 | + # Get a project labels | |
220 | + # | |
221 | + # Parameters: | |
222 | + # id (required) - The ID of a project | |
223 | + # Example Request: | |
224 | + # GET /projects/:id/labels | |
225 | + get ':id/labels' do | |
226 | + @labels = user_project.issues_labels | |
227 | + present @labels, with: Entities::Label | |
228 | + end | |
218 | 229 | end |
219 | 230 | end |
220 | 231 | end | ... | ... |
spec/requests/api/projects_spec.rb
... | ... | @@ -13,6 +13,7 @@ describe API::API do |
13 | 13 | let(:snippet) { create(:project_snippet, author: user, project: project, title: 'example') } |
14 | 14 | let(:users_project) { create(:users_project, user: user, project: project, project_access: UsersProject::MASTER) } |
15 | 15 | let(:users_project2) { create(:users_project, user: user3, project: project, project_access: UsersProject::DEVELOPER) } |
16 | + let(:issue_with_labels) { create(:issue, author: user, assignee: user, project: project, :label_list => "label1, label2") } | |
16 | 17 | |
17 | 18 | describe "GET /projects" do |
18 | 19 | before { project } |
... | ... | @@ -632,4 +633,16 @@ describe API::API do |
632 | 633 | end |
633 | 634 | end |
634 | 635 | end |
636 | + | |
637 | + describe "GET /projects/:id/labels" do | |
638 | + before { issue_with_labels } | |
639 | + | |
640 | + it "should return project labels" do | |
641 | + get api("/projects/#{project.id}/labels", user) | |
642 | + response.status.should == 200 | |
643 | + json_response.should be_an Array | |
644 | + json_response.first['name'].should == issue_with_labels.labels.first.name | |
645 | + json_response.last['name'].should == issue_with_labels.labels.last.name | |
646 | + end | |
647 | + end | |
635 | 648 | end | ... | ... |