Merge pull request #454 from AyuntamientoMadrid/failed_census_call-277
Stores failed Census API calls
This commit is contained in:
3
app/models/failed_census_call.rb
Normal file
3
app/models/failed_census_call.rb
Normal file
@@ -0,0 +1,3 @@
|
||||
class FailedCensusCall < ActiveRecord::Base
|
||||
belongs_to :user
|
||||
end
|
||||
@@ -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
|
||||
|
||||
13
db/migrate/20150909211203_create_failed_census_calls.rb
Normal file
13
db/migrate/20150909211203_create_failed_census_calls.rb
Normal 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
|
||||
13
db/schema.rb
13
db/schema.rb
@@ -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"
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
Reference in New Issue
Block a user