Merge pull request #1752 from MariaCheca/1725-census_local_copy_user_verification

Allow users to verify their account against a local copy of the Census
This commit is contained in:
BertoCQ
2017-07-21 11:36:29 +02:00
committed by GitHub
14 changed files with 226 additions and 16 deletions

View File

@@ -0,0 +1,6 @@
class LocalCensusRecord < ActiveRecord::Base
validates :document_number, presence: true
validates :document_type, presence: true
validates :date_of_birth, presence: true
validates :postal_code, presence: true
end

View File

@@ -4,7 +4,7 @@ class Officing::Residence
attr_accessor :user, :officer, :document_number, :document_type, :year_of_birth
before_validation :call_census_api
before_validation :retrieve_census_data
validates :document_number, presence: true
validates :document_type, presence: true
@@ -101,8 +101,8 @@ class Officing::Residence
private
def call_census_api
@census_api_response = CensusApi.new.call(document_type, document_number)
def retrieve_census_data
@census_api_response = CensusCaller.new.call(document_type, document_number)
end
def residency_valid?

View File

@@ -35,7 +35,7 @@ class Poll
end
def census_api_response
@census_api_response ||= CensusApi.new.call(document_type, document_number)
@census_api_response ||= CensusCaller.new.call(document_type, document_number)
end
def fill_stats_fields

View File

@@ -69,7 +69,7 @@ class Signature < ActiveRecord::Base
def in_census?
document_types.detect do |document_type|
response = CensusApi.new.call(document_type, document_number)
response = CensusCaller.new.call(document_type, document_number)
if response.valid?
@census_api_response = response
true
@@ -94,4 +94,4 @@ class Signature < ActiveRecord::Base
%w(1 2 3 4)
end
end
end

View File

@@ -18,7 +18,7 @@ class Verification::Management::Document
end
def in_census?
response = CensusApi.new.call(document_type, document_number)
response = CensusCaller.new.call(document_type, document_number)
response.valid? && valid_age?(response)
end

View File

@@ -5,7 +5,7 @@ class Verification::Residence
attr_accessor :user, :document_number, :document_type, :date_of_birth, :postal_code, :terms_of_service
before_validation :call_census_api
before_validation :retrieve_census_data
validates :document_number, presence: true
validates :document_type, presence: true
@@ -61,23 +61,23 @@ class Verification::Residence
end
def district_code
@census_api_response.district_code
@census_data.district_code
end
def gender
@census_api_response.gender
@census_data.gender
end
private
def call_census_api
@census_api_response = CensusApi.new.call(document_type, document_number)
def retrieve_census_data
@census_data = CensusCaller.new.call(document_type, document_number)
end
def residency_valid?
@census_api_response.valid? &&
@census_api_response.postal_code == postal_code &&
@census_api_response.date_of_birth == date_of_birth
@census_data.valid? &&
@census_data.postal_code == postal_code &&
@census_data.date_of_birth == date_of_birth
end
def clean_document_number