From 5d2a4bc5ab9e11db0e77539cac0fa49ef1ae66c3 Mon Sep 17 00:00:00 2001 From: Victor Costa Date: Mon, 15 Feb 2016 10:41:41 -0300 Subject: [PATCH] api: accept a comma separated string to represent partial fields --- lib/noosfero/api/helpers.rb | 4 +++- test/unit/api/helpers_test.rb | 9 ++++++++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/lib/noosfero/api/helpers.rb b/lib/noosfero/api/helpers.rb index cc2511c..16f5bc9 100644 --- a/lib/noosfero/api/helpers.rb +++ b/lib/noosfero/api/helpers.rb @@ -57,7 +57,9 @@ require_relative '../../find_by_contents' options.merge!(fields.symbolize_keys.slice(:only, :except)) end rescue - options[:only] = Array.wrap(params[:fields]) + fields = params[:fields] + fields = fields.split(',') if fields.kind_of?(String) + options[:only] = Array.wrap(fields) end end present model, options diff --git a/test/unit/api/helpers_test.rb b/test/unit/api/helpers_test.rb index 08747f9..4328f4f 100644 --- a/test/unit/api/helpers_test.rb +++ b/test/unit/api/helpers_test.rb @@ -226,11 +226,18 @@ class APIHelpersTest < ActiveSupport::TestCase should 'fallback to array when fields parameter is not a json when calling present partial' do model = mock - params[:fields] = 'name' + params[:fields] = ['name'] expects(:present).with(model, {:only => ['name']}) present_partial(model, {}) end + should 'fallback to comma separated string when fields parameter is not an array when calling present partial' do + model = mock + params[:fields] = 'name,description' + expects(:present).with(model, {:only => ['name', 'description']}) + present_partial(model, {}) + end + should 'accept json as fields parameter when calling present partial' do model = mock params[:fields] = {only: [:name, {user: [:login]}]}.to_json -- libgit2 0.21.2