Improve script
This commit is contained in:
1 parent
a57fa574eb
commit
2d72b20cad
5 files changed
+107
-167
No files matched your search
@@ -0,0 +1,51 @@
|
||||
#!/usr/bin/env ruby
|
||||
|
||||
require "dotenv/load" if ENV.fetch("RACK_ENV", "development") == "development"
|
||||
|
||||
require_relative "../lib/database"
|
||||
|
||||
abort "Usage: ruby bin/add-core-member EMAIL" unless ARGV.one?
|
||||
|
||||
email = ARGV.first.strip.downcase
|
||||
abort "Adresse électronique manquante." if email.empty?
|
||||
|
||||
begin
|
||||
DB.transaction do
|
||||
verified_status_id = DB[:account_statuses]
|
||||
.where(name: "Verified")
|
||||
.get(:id)
|
||||
|
||||
raise "Statut Verified introuvable." unless verified_status_id
|
||||
|
||||
account = DB[:accounts]
|
||||
.where(Sequel.function(:lower, :email) => email)
|
||||
.first
|
||||
|
||||
raise "Compte introuvable : #{email}" unless account
|
||||
raise "Adresse électronique non vérifiée : #{email}" unless
|
||||
account[:status_id] == verified_status_id
|
||||
|
||||
member = DB[:members].where(account_id: account[:id]).first
|
||||
|
||||
raise "Fiche membre introuvable." unless member
|
||||
raise "Une personne physique est requise." unless
|
||||
member[:kind] == "individual"
|
||||
raise "Ce membre appartient déjà au Noyau." if member[:core_member]
|
||||
|
||||
membership = DB[:memberships]
|
||||
.where(member_id: member[:id], status: "accepted")
|
||||
.first
|
||||
|
||||
raise "Ce membre doit avoir une adhésion acceptée." unless membership
|
||||
|
||||
updated = DB[:members]
|
||||
.where(id: member[:id], core_member: false)
|
||||
.update(core_member: true)
|
||||
|
||||
raise "Impossible d'ajouter ce membre au Noyau." unless updated == 1
|
||||
end
|
||||
rescue StandardError => e
|
||||
abort "Erreur : #{e.message}"
|
||||
end
|
||||
|
||||
puts "#{email} a été ajouté au Noyau."
|
||||
Reference in new issue
Block a user