2024-04-29 00:17:15 +02:00
|
|
|
|
# frozen_string_literal: true
|
|
|
|
|
|
2022-12-01 10:46:42 +01:00
|
|
|
|
namespace :after_party do
|
|
|
|
|
desc 'Deployment task: migrate_api_tokens'
|
|
|
|
|
task migrate_api_tokens: :environment do
|
|
|
|
|
puts "Running deploy task 'migrate_api_tokens'"
|
|
|
|
|
|
|
|
|
|
administrateurs = Administrateur
|
|
|
|
|
.where.not(encrypted_token: nil)
|
|
|
|
|
.where.missing(:api_tokens)
|
|
|
|
|
|
|
|
|
|
progress = ProgressReport.new(administrateurs.count)
|
|
|
|
|
|
|
|
|
|
administrateurs.find_each do |administrateur|
|
|
|
|
|
administrateur.transaction do
|
|
|
|
|
administrateur
|
|
|
|
|
.api_tokens
|
|
|
|
|
.create!(name: administrateur.updated_at.strftime('Jeton d’API généré le %d/%m/%Y'),
|
|
|
|
|
encrypted_token: administrateur.encrypted_token,
|
|
|
|
|
version: 1)
|
|
|
|
|
administrateur.update_column(:encrypted_token, nil)
|
|
|
|
|
end
|
|
|
|
|
progress.inc
|
|
|
|
|
end
|
|
|
|
|
progress.finish
|
|
|
|
|
|
|
|
|
|
# Update task as completed. If you remove the line below, the task will
|
|
|
|
|
# run with every deploy (or every time you call after_party:run).
|
|
|
|
|
AfterParty::TaskRecord
|
|
|
|
|
.create version: AfterParty::TaskRecorder.new(__FILE__).timestamp
|
|
|
|
|
end
|
|
|
|
|
end
|