Merge pull request #454 from AyuntamientoMadrid/failed_census_call-277

Stores failed Census API calls
This commit is contained in:
Enrique García
2015-09-10 20:21:15 +02:00
6 changed files with 60 additions and 0 deletions

View File

@@ -0,0 +1,3 @@
class FailedCensusCall < ActiveRecord::Base
belongs_to :user
end

View File

@@ -42,8 +42,19 @@ class Verification::Residence
unless residency.valid?
errors.add(:residence_in_madrid, false)
user.update(residence_verification_tries: user.residence_verification_tries += 1)
store_failed_attempt
end
self.date_of_birth = string_to_date(date_of_birth)
end
def store_failed_attempt
FailedCensusCall.create({
user: user,
document_number: document_number,
document_type: document_type,
date_of_birth: date_of_birth,
postal_code: postal_code
})
end
end

View File

@@ -0,0 +1,13 @@
class CreateFailedCensusCalls < ActiveRecord::Migration
def change
create_table :failed_census_calls do |t|
t.belongs_to :user, index: true, foreign_key: true
t.string :document_number
t.string :document_type
t.date :date_of_birth
t.string :postal_code
t.timestamps null: false
end
end
end

View File

@@ -128,6 +128,18 @@ ActiveRecord::Schema.define(version: 20150910092713) do
add_index "delayed_jobs", ["priority", "run_at"], name: "delayed_jobs_priority", using: :btree
create_table "failed_census_calls", force: :cascade do |t|
t.integer "user_id"
t.string "document_number"
t.string "document_type"
t.date "date_of_birth"
t.string "postal_code"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
add_index "failed_census_calls", ["user_id"], name: "index_failed_census_calls_on_user_id", using: :btree
create_table "flags", force: :cascade do |t|
t.integer "user_id"
t.string "flaggable_type"
@@ -301,6 +313,7 @@ ActiveRecord::Schema.define(version: 20150910092713) do
add_index "votes", ["voter_id", "voter_type", "vote_scope"], name: "index_votes_on_voter_id_and_voter_type_and_vote_scope", using: :btree
add_foreign_key "administrators", "users"
add_foreign_key "failed_census_calls", "users"
add_foreign_key "flags", "users"
add_foreign_key "identities", "users"
add_foreign_key "moderators", "users"

View File

@@ -28,6 +28,10 @@ FactoryGirl.define do
date_of_birth Date.new(1980, 12, 31)
postal_code "28013"
terms_of_service '1'
trait :invalid do
postal_code "12345"
end
end
factory :verification_sms, class: Verification::Sms do

View File

@@ -76,4 +76,20 @@ describe Verification::Residence do
end
end
describe "Failed census call" do
it "stores failed census API calls" do
residence = build(:verification_residence, :invalid)
residence.save
expect(FailedCensusCall.count).to eq(1)
expect(FailedCensusCall.first).to have_attributes({
user_id: residence.user.id,
document_number: "12345678Z",
document_type: "1",
date_of_birth: Date.new(1980, 12, 31),
postal_code: "12345"
})
end
end
end