[Git][noosfero/noosfero][master] 10 commits: Fixed environment endpoint returned data
Leandro Nunes
gitlab at mg.gitlab.com
Tue Apr 26 14:15:36 BRT 2016
Leandro Nunes pushed to branch master at Noosfero / noosfero
Commits:
aeaecfbd by Carlos Purificacao at 2016-04-26T10:44:33-03:00
Fixed environment endpoint returned data
- - - - -
ee22db70 by Carlos Purificacao at 2016-04-26T10:44:33-03:00
Added description to environment entity
- - - - -
ecb1bf67 by Carlos Purificacao at 2016-04-26T10:44:33-03:00
Added description to environment api test
- - - - -
adeac9bc by Carlos Purificacao at 2016-04-26T10:44:33-03:00
Allowed settings for environments if user is admin
- - - - -
49c773c2 by Carlos Purificacao at 2016-04-26T10:44:33-03:00
Refactored create admin user method
- - - - -
0a8465c6 by Carlos Purificacao at 2016-04-26T10:44:33-03:00
Changed environment api to use present_partial
- - - - -
7b324eb6 by Leandro Nunes dos Santos at 2016-04-26T11:08:12-03:00
refactoring get id method
- - - - -
b1cad3f0 by Leandro Nunes dos Santos at 2016-04-26T11:24:12-03:00
return the old implementation of create_admin_user
- - - - -
f7d88514 by Leandro Nunes dos Santos at 2016-04-26T11:24:59-03:00
refactoring test to set admin user by another way
- - - - -
4492ca9f by Leandro Nunes at 2016-04-26T17:15:22+00:00
Merge branch 'environment-api-refactoring' into 'master'
Environment api refactoring
Fixed environment endpoint data
See merge request !874
- - - - -
4 changed files:
- lib/noosfero/api/entities.rb
- lib/noosfero/api/helpers.rb
- lib/noosfero/api/v1/environments.rb
- test/api/environment_test.rb
Changes:
=====================================
lib/noosfero/api/entities.rb
=====================================
--- a/lib/noosfero/api/entities.rb
+++ b/lib/noosfero/api/entities.rb
@@ -231,6 +231,9 @@ module Noosfero
class Environment < Entity
expose :name
+ expose :id
+ expose :description
+ expose :settings, if: lambda { |instance, options| options[:is_admin] }
end
class Tag < Entity
=====================================
lib/noosfero/api/helpers.rb
=====================================
--- a/lib/noosfero/api/helpers.rb
+++ b/lib/noosfero/api/helpers.rb
@@ -30,6 +30,11 @@ require_relative '../../find_by_contents'
current_user.person unless current_user.nil?
end
+ def is_admin?(environment)
+ return false unless current_user
+ return current_person.is_admin?(environment)
+ end
+
def logout
@current_user = nil
end
=====================================
lib/noosfero/api/v1/environments.rb
=====================================
--- a/lib/noosfero/api/v1/environments.rb
+++ b/lib/noosfero/api/v1/environments.rb
@@ -11,13 +11,15 @@ module Noosfero
end
get ':id' do
+ local_environment = nil
if (params[:id] == "default")
- present Environment.default
+ local_environment = Environment.default
elsif (params[:id] == "context")
- present environment
+ local_environment = environment
else
- present Environment.find(params[:id])
+ local_environment = Environment.find(params[:id])
end
+ present_partial local_environment, :with => Entities::Environment, :is_admin => is_admin?(local_environment)
end
end
=====================================
test/api/environment_test.rb
=====================================
--- a/test/api/environment_test.rb
+++ b/test/api/environment_test.rb
@@ -2,16 +2,45 @@ require_relative 'test_helper'
class EnvironmentTest < ActiveSupport::TestCase
- def setup
- @person = create_user('testing').person
+ should 'return the default environment' do
+ environment = Environment.default
+ get "/api/v1/environment/default"
+ json = JSON.parse(last_response.body)
+ assert_equal environment.id, json['id']
end
- attr_reader :person
- should 'return the default environment' do
+ should 'not return the default environment settings' do
environment = Environment.default
get "/api/v1/environment/default"
json = JSON.parse(last_response.body)
assert_equal environment.id, json['id']
+ assert_nil json['settings']
+ end
+
+ should 'return the default environment settings for admin' do
+ login_api
+ environment = Environment.default
+ environment.add_admin(person)
+ get "/api/v1/environment/default?#{params.to_query}"
+ json = JSON.parse(last_response.body)
+ assert_equal environment.id, json['id']
+ assert_equal environment.settings, json['settings']
+ end
+
+ should 'not return the default environment settings for non admin users' do
+ login_api
+ environment = Environment.default
+ get "/api/v1/environment/default?#{params.to_query}"
+ json = JSON.parse(last_response.body)
+ assert_equal environment.id, json['id']
+ assert_nil json['settings']
+ end
+
+ should 'return the default environment description' do
+ environment = Environment.default
+ get "/api/v1/environment/default"
+ json = JSON.parse(last_response.body)
+ assert_equal environment.description, json['description']
end
should 'return created environment' do
View it on GitLab: https://gitlab.com/noosfero/noosfero/compare/c8eaed18d85ace70e370e069fec3202c9a151cff...4492ca9fea106282776aca602ae8a7f17871ea87
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listas.softwarelivre.org/pipermail/noosfero-dev/attachments/20160426/1df25b0b/attachment-0001.html>
More information about the Noosfero-dev
mailing list