# frozen_string_literal: true
require ‘bsb’ require ‘bsb/database_generator’
namespace :bsb do
desc 'Sync config/bsb_db.json with data provided by AusPayNet' task :sync_bsb_db do latest_db = BSB::DatabaseGenerator.fetch_latest existing_db_hash = JSON.parse(File.read(BSB::DB_FILEPATH)) latest_db_hash = latest_db.hash deletions = existing_db_hash.reject { |bsb, _| latest_db_hash.key?(bsb) } additions = latest_db_hash.reject { |bsb, _| existing_db_hash.key?(bsb) } modifications = {} latest_db_hash.each do |bsb, data| next unless existing_db_hash.key?(bsb) && existing_db_hash[bsb] != data modifications[bsb] = data end changes_json = JSON.pretty_generate( { additions: additions, deletions: deletions, modifications: modifications } ) File.write(BSB::DB_FILEPATH, latest_db.json(sorted: true)) File.write(BSB::CHANGES_FILEPATH, changes_json) end
end