Skip to content

Commit

Permalink
Merge pull request #3141 from bitzesty/pb/add-script-to-check-phone-n…
Browse files Browse the repository at this point in the history
…umbers

Add scripts to export/remove invalid User phone numbers
  • Loading branch information
TheDancingClown authored Nov 11, 2024
2 parents 54940b2 + 196acb2 commit 10e7cf1
Show file tree
Hide file tree
Showing 3 changed files with 50 additions and 0 deletions.
1 change: 1 addition & 0 deletions Gemfile
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,7 @@ gem "simple_form", "~> 5.0"
gem "country_select", "~> 3.1"
gem "email_validator"
gem "enumerize"
gem "phonelib"

# PDF generation
gem "prawn"
Expand Down
2 changes: 2 additions & 0 deletions Gemfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -403,6 +403,7 @@ GEM
pg_search (2.3.6)
activerecord (>= 5.2)
activesupport (>= 5.2)
phonelib (0.9.3)
poltergeist (1.18.1)
capybara (>= 2.1, < 4)
cliver (~> 0.3.1)
Expand Down Expand Up @@ -780,6 +781,7 @@ DEPENDENCIES
pdf-inspector
pg
pg_search (~> 2.3.3)
phonelib
poltergeist
prawn
prawn-table
Expand Down
47 changes: 47 additions & 0 deletions lib/tasks/temprary/remove_invalid_user_phone_numbers.rake
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
namespace :db do
desc "Remove invalid user phone_numbers"
task remove_invalid_user_phone_numbers: :environment do
User.find_each do |user|
invalid = false

if user.phone_number && Phonelib.invalid_for_country?(user.phone_number, "GB")
user.phone_number = nil
invalid = true
end

if user.company_phone_number && Phonelib.invalid_for_country?(user.company_phone_number, "GB")
user.company_phone_number = nil
invalid = true
end

user.save! if invalid
end
end

desc "Export users with invalid phone numbers"
task export_user_phone_numbers: :environment do
CSV.open("user_phone_numbers.csv", "w") do |csv|
csv << ["Email", "Name", "Number", "Field"]

User.find_each do |user|
if user.phone_number && Phonelib.invalid_for_country?(user.phone_number, "GB")
csv << [
user.email,
user.full_name,
user.phone_number,
"phone_number",
]
end

if user.company_phone_number && Phonelib.invalid_for_country?(user.company_phone_number, "GB")
csv << [
user.email,
user.full_name,
user.company_phone_number,
"company_phone_number",
]
end
end
end
end
end

0 comments on commit 10e7cf1

Please sign in to comment.