From d4e350e776bebd833b2749b4c2d172bb29c1b8ab Mon Sep 17 00:00:00 2001 From: nao taka Date: Wed, 3 Jul 2019 13:57:57 +0900 Subject: feat: filter on project status my first commit for redmine.org --- app/controllers/projects_controller.rb | 3 +++ test/integration/api_test/projects_test.rb | 9 +++++++++ 2 files changed, 12 insertions(+) diff --git a/app/controllers/projects_controller.rb b/app/controllers/projects_controller.rb index 3e3fc69f3..a3fb49233 100644 --- a/app/controllers/projects_controller.rb +++ b/app/controllers/projects_controller.rb @@ -51,6 +51,9 @@ class ProjectsController < ApplicationController @projects = scope.to_a } format.api { + if params[:status] + scope = scope.status(params[:status]) + end @offset, @limit = api_offset_and_limit @project_count = scope.count @projects = scope.offset(@offset).limit(@limit).to_a diff --git a/test/integration/api_test/projects_test.rb b/test/integration/api_test/projects_test.rb index f5d1e69c2..775948adb 100644 --- a/test/integration/api_test/projects_test.rb +++ b/test/integration/api_test/projects_test.rb @@ -49,6 +49,15 @@ class Redmine::ApiTest::ProjectsTest < Redmine::ApiTest::Base assert json['projects'].first.has_key?('id') end + test "GET /projects.json with status=1 should return active projects" do + Project.find_by_name('eCookbook').update_attribute :status, Project::STATUS_CLOSED + + get '/projects.json?status=1' + assert_response :success + json = ActiveSupport::JSON.decode(response.body) + assert json['projects'].all? {|p| p['status'] == 1} + end + test "GET /projects.xml with include=issue_categories should return categories" do get '/projects.xml?include=issue_categories' assert_response :success -- 2.18.0