diff --git a/lib/noosfero/api/v1/people.rb b/lib/noosfero/api/v1/people.rb index adfb593..610c208 100644 --- a/lib/noosfero/api/v1/people.rb +++ b/lib/noosfero/api/v1/people.rb @@ -57,7 +57,9 @@ module Noosfero user_data[:password] = params[:person].delete(:password) user_data[:password_confirmation] = params[:person].delete(:password_confirmation) user = User.build(user_data, params[:person], environment) - if !user.signup! + begin + user.signup! + rescue ActiveRecord::RecordInvalid render_api_errors!(user.errors.full_messages) end diff --git a/test/unit/api/people_test.rb b/test/unit/api/people_test.rb index 236bc8c..e35f8eb 100644 --- a/test/unit/api/people_test.rb +++ b/test/unit/api/people_test.rb @@ -112,7 +112,7 @@ class PeopleTest < ActiveSupport::TestCase should 'return 400 status for invalid person creation' do params[:person] = {:login => 'some'} - post "/api/v1/users?#{params.to_query}" + post "/api/v1/people?#{params.to_query}" json = JSON.parse(last_response.body) assert_equal 400, last_response.status end diff --git a/test/unit/api/users_test.rb b/test/unit/api/users_test.rb deleted file mode 100644 index 5fd9ebe..0000000 --- a/test/unit/api/users_test.rb +++ /dev/null @@ -1,49 +0,0 @@ -require File.dirname(__FILE__) + '/test_helper' - -class UsersTest < ActiveSupport::TestCase - - def setup - login_api - end - - should 'list users' do - get "/api/v1/users/?#{params.to_query}" - json = JSON.parse(last_response.body) - assert_includes json["users"].map { |a| a["login"] }, user.login - end - - should 'create a user' do - params[:user] = {:login => 'some', :password => '123456', :password_confirmation => '123456', :email => 'some@some.com'} - post "/api/v1/users?#{params.to_query}" - json = JSON.parse(last_response.body) - assert_equal 'some', json['user']['login'] - end - - should 'return 400 status for invalid user creation' do - params[:user] = {:login => 'some'} - post "/api/v1/users?#{params.to_query}" - json = JSON.parse(last_response.body) - assert_equal 400, last_response.status - end - - should 'get user' do - get "/api/v1/users/#{user.id}?#{params.to_query}" - json = JSON.parse(last_response.body) - assert_equal user.id, json['user']['id'] - end - - should 'list user permissions' do - community = fast_create(Community) - community.add_admin(person) - get "/api/v1/users/#{user.id}/?#{params.to_query}" - json = JSON.parse(last_response.body) - assert_includes json["user"]["permissions"], community.identifier - end - - should 'get logged user' do - get "/api/v1/users/me?#{params.to_query}" - json = JSON.parse(last_response.body) - assert_equal user.id, json['user']['id'] - end - -end -- libgit2 0.21.2