require ‘optparse’ require ‘ribbon/intercom’ require ‘json’

namespace :intercom do

namespace :client do
  task :rotate_secret, [:service] => :environment do |t, args|
    service = args[:service]
    puts "New #{service} secret: #{Intercom[service].rotate_secret}"
  end
end

namespace :service do
  task :open_channel, [:service_name, :channel_name, :permissions] => :environment do |t, args|
    service = Intercom::Utils.classify(args[:service_name])
    channel_name = args[:channel_name]
    permissions = args[:permissions].split(" ")

    channel = Intercom::const_get(service).open_channel(name: channel_name, may: permissions)
    secret = channel.rotate_secret!
    puts "New channel: #{channel_name} with token: #{channel.token} and secret: #{secret} with permissions: #{channel.permissions.to_a.inspect}"
  end
end

end