Files
netig.net/bin/add-core-member
T
2026-11-03 18:24:23 +01:00

51 lines
1.4 KiB
Ruby

#!/usr/bin/env ruby
require_relative "../config/boot"
require_relative "../lib/database"
abort "Usage: ruby bin/add-core-member EMAIL" unless ARGV.one?
email = ARGV.first.strip.downcase
abort "Email manquant." 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 "Email non vérifié : #{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."