From 2cac43ba7fa0398cbbbe5f8e34206e2ee14c679d Mon Sep 17 00:00:00 2001 From: nao taka Date: Sat, 6 Jul 2019 11:16:09 +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 | 10 ++++++++++ 2 files changed, 13 insertions(+) diff --git a/app/controllers/projects_controller.rb b/app/controllers/projects_controller.rb index 98571b8f9..5f056fdf2 100644 --- a/app/controllers/projects_controller.rb +++ b/app/controllers/projects_controller.rb @@ -54,6 +54,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 ee5c53a7c..4cdeb8283 100644 --- a/test/integration/api_test/projects_test.rb +++ b/test/integration/api_test/projects_test.rb @@ -51,6 +51,16 @@ 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'].any? + 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