improves incomplete verification scope [#500]

This commit is contained in:
rgarcia
2015-09-24 15:23:49 +02:00
parent 9ced80fe8c
commit 8c56e28cce
3 changed files with 12 additions and 20 deletions

View File

@@ -1,11 +1,11 @@
class Admin::VerificationsController < Admin::BaseController class Admin::VerificationsController < Admin::BaseController
def index def index
@users = User.unverified.page(params[:page]) @users = User.incomplete_verification.page(params[:page])
end end
def search def search
@users = User.unverified.search(params[:name_or_email]).page(params[:page]).for_render @users = User.incomplete_verification.search(params[:name_or_email]).page(params[:page]).for_render
render :index render :index
end end

View File

@@ -6,8 +6,7 @@ module Verification
scope :level_two_verified, -> { where("users.confirmed_phone IS NOT NULL AND users.residence_verified_at IS NOT NULL") } scope :level_two_verified, -> { where("users.confirmed_phone IS NOT NULL AND users.residence_verified_at IS NOT NULL") }
scope :level_two_or_three_verified, -> { where("users.verified_at IS NOT NULL OR (users.confirmed_phone IS NOT NULL AND users.residence_verified_at IS NOT NULL)") } scope :level_two_or_three_verified, -> { where("users.verified_at IS NOT NULL OR (users.confirmed_phone IS NOT NULL AND users.residence_verified_at IS NOT NULL)") }
scope :unverified, -> { where("users.verified_at IS NULL AND (users.residence_verified_at IS NULL OR users.confirmed_phone IS NULL)") } scope :unverified, -> { where("users.verified_at IS NULL AND (users.residence_verified_at IS NULL OR users.confirmed_phone IS NULL)") }
scope :with_failed_attempts, -> { where("users.failed_census_calls_count > ?", 0) } scope :incomplete_verification, -> { where("(users.residence_verified_at IS NULL AND users.failed_census_calls_count > ?) OR (users.residence_verified_at IS NOT NULL AND (users.unconfirmed_phone IS NULL OR users.confirmed_phone IS NULL))", 0) }
scope :incomplete_verification, -> { unverified.with_failed_attempts }
end end
def verification_email_sent? def verification_email_sent?

View File

@@ -55,27 +55,20 @@ shared_examples_for "verifiable" do
end end
end end
describe "#with_failed_attempts" do
it "returns users with failed verification attempts" do
user1 = create(:user, verified_at: nil, confirmed_phone: nil)
user2 = create(:user, verified_at: nil, confirmed_phone: nil)
create(:failed_census_call, user: user1)
expect(model.with_failed_attempts).to include(user1)
expect(model.with_failed_attempts).to_not include(user2)
end
end
describe "#incomplete_verification" do describe "#incomplete_verification" do
it "returns users with incomplete verifications" do it "returns users with incomplete verifications" do
user1 = create(:user, verified_at: nil, confirmed_phone: nil) user1 = create(:user, verified_at: nil, confirmed_phone: nil)
user2 = create(:user, verified_at: nil, confirmed_phone: nil)
user3 = create(:user, verified_at: Time.now, residence_verified_at: Time.now, confirmed_phone: "123456789")
create(:failed_census_call, user: user1) create(:failed_census_call, user: user1)
expect(model.with_failed_attempts).to include(user1) user2 = create(:user, verified_at: nil, residence_verified_at: Time.now, unconfirmed_phone: nil)
expect(model.with_failed_attempts).to_not include(user2) user3 = create(:user, verified_at: nil, confirmed_phone: nil)
expect(model.with_failed_attempts).to_not include(user3) user4 = create(:user, verified_at: Time.now, residence_verified_at: Time.now, unconfirmed_phone: "123456789", confirmed_phone: "123456789")
expect(model.incomplete_verification).to include(user1)
expect(model.incomplete_verification).to include(user2)
expect(model.incomplete_verification).to_not include(user3)
expect(model.incomplete_verification).to_not include(user4)
end end
end end
end end