namespace :bibliotheca do

namespace :guides do
  def guides_for_organization(org)
    Octokit.auto_paginate = true
    Octokit.repos(org).map(&:full_name).select { |it| it =~ /guia/ }
  end

  task :export, [:author_email] do |_t, args|
    author_email = args[:author_email]
    Bibliotheca::Collection::Guides.all.each do |it|
      it.export! author_email rescue (puts "ignoring #{it.slug}")
    end
  end

  task :import_from_github, [:organization, :url] do |_t, args|
    args.with_defaults(url: 'http://localhost:3004')

    org = args[:organization]
    url = args[:url]

    puts "importing guides from organization #{org} into #{url}"

    guides_for_organization(org).each do |slug|
      puts "importing guide #{slug}...."
      begin
        RestClient.post "#{url}/guides/import/#{slug}", {}
      rescue => e
        puts "import failed! #{e.response}"
      end
    end
  end
end

end