Commit 6c26a4a9fc8b172a651288010bb47778602c8be9

Authored by Victor Costa
1 parent fec92470

api: fix user registration

lib/noosfero/api/session.rb
... ... @@ -45,16 +45,14 @@ module Noosfero
45 45 # test_captcha will render_api_error! and exit in case of any problem
46 46 # this return is just to improve the clarity of the execution path
47 47 return unless test_captcha(remote_ip, params, environment)
48   - user = User.new(attrs)
49   - params[:name].present? ? name = params[:name] : name = attrs[:email]
50   - person = Person.new(name: name, identifier: user.login)
51   - user.person = person
52   - if user.signup
  48 + name = params[:name].present? ? params[:name] : attrs[:email]
  49 + user = User.new(attrs.merge(:name => name))
  50 + if user.signup!
53 51 user.generate_private_token! if user.activated?
54 52 present user, :with => Entities::UserLogin
55 53 else
56 54 user.destroy
57   - message = user.errors.as_json.merge(person.errors.as_json).to_json
  55 + message = user.errors.as_json.merge(user.person.errors.as_json).to_json
58 56 render_api_error!(message, 400)
59 57 end
60 58 end
... ...
test/unit/api/session_test.rb
... ... @@ -26,8 +26,9 @@ class SessionTest < ActiveSupport::TestCase
26 26 post "/api/v1/register?#{params.to_query}"
27 27 assert_equal 201, last_response.status
28 28 json = JSON.parse(last_response.body)
29   - assert json['activated']
30   - assert json['private_token'].present?
  29 + assert User['newuserapi'].activated?
  30 + assert json['user']['activated']
  31 + assert json['user']['private_token'].present?
31 32 end
32 33  
33 34 should 'register a user with name' do
... ...