# frozen_string_literal: true

require 'sinatra/activerecord' require 'sinatra/activerecord/rake' require 'osso'

namespace :osso do

desc 'Bootstrap Osso data for a deployment'
task :bootstrap do
  %w[Production Staging Development].each do |environment|
    next if Osso::Models::OauthClient.find_by_name(environment)

    Osso::Models::OauthClient.create!(
      name: environment,
    )
  end

  Osso::Models::AppConfig.create

  admin_email = ENV['ADMIN_EMAIL']

  if admin_email
    Osso::Models::Account.create(
      email: admin_email,
      status_id: 1,
      role: 'admin',
    )

    base_uri = URI.parse(ENV['BASE_URL'])

    rodauth = Osso::Admin.rodauth.new(Osso::Admin.new({
      'HTTP_HOST' => base_uri.host,
      'SERVER_NAME' => base_uri.to_s,
      'rack.url_scheme' => base_uri.scheme,
    }))

    rodauth.account_from_login(admin_email)
    rodauth.setup_account_verification
  end
end

end