adds demographic info to signature users

This commit is contained in:
Juanjo Bazán
2017-04-05 11:31:56 +02:00
parent 7fd3bc8d77
commit 12c00a714d
2 changed files with 19 additions and 5 deletions

View File

@@ -26,7 +26,7 @@ class Signature < ActiveRecord::Base
def assign_vote
if user_exists?
assign_vote_to_user
else
elsif in_census?
create_user
assign_vote_to_user
end
@@ -55,7 +55,10 @@ class Signature < ActiveRecord::Base
erased_at: Time.now,
password: random_password,
terms_of_service: '1',
email: nil
email: nil,
date_of_birth: @census_api_response.date_of_birth,
gender: @census_api_response.gender,
geozone: Geozone.where(census_code: @census_api_response.district_code).first
}
User.create!(user_params)
end
@@ -70,10 +73,17 @@ class Signature < ActiveRecord::Base
end
def in_census?
response = document_types.detect do |document_type|
CensusApi.new.call(document_type, document_number).valid?
document_types.detect do |document_type|
response = CensusApi.new.call(document_type, document_number)
if response.valid?
@census_api_response = response
true
else
false
end
end
response.present?
@census_api_response.present?
end
def set_user

View File

@@ -118,6 +118,7 @@ describe Signature do
describe "inexistent user" do
it "creates a user with that document number" do
create(:geozone, census_code: "01")
signature = create(:signature, document_number: "12345678Z")
proposal = signature.signable
@@ -128,6 +129,9 @@ describe Signature do
expect(user.created_from_signature).to eq(true)
expect(user.verified_at).to be
expect(user.erased_at).to be
expect(user.geozone).to be
expect(user.gender).to be
expect(user.date_of_birth).to be
end
it "assign the vote to newly created user" do