namespace :presence do

desc 'Synchronize Xmpp Server with Social Stream Rails Application'
task :synchronize => [ 'presence:synchronize:connections', 'presence:synchronize:rosters' ]

namespace :synchronize do

  desc "Synchronize user presence"
  task :connections, [:domain] => :environment do |t, args| 
    puts "Starting presence:synchronize:connections"
    unless args[:domain]
      puts "No web domain specified"
      domain = SocialStream::Presence.domain
      puts "Executing  rake presence:synchronize:connections[" + domain + "]"
    else
      domain = args[:domain]
    end
    SocialStream::Presence::XmppServerOrder::synchronizePresence(domain)
    puts "Synchronization complete"
  end

  desc "Synchronize Xmpp Server database with Social Stream Rails Application database"
  desc "Remove all rosters and populate rosters from Social Stream data."
  task :rosters, [:domain] => :environment do |t, args| 
      puts "Starting presence:synchronize:rosters"
      unless args[:domain]
        puts "No web domain specified"
        domain = SocialStream::Presence.domain
        puts "Executing  rake presence:synchronize:rosters[" + domain + "]"
      else
        domain = args[:domain]
      end
      SocialStream::Presence::XmppServerOrder::synchronizeRosters(domain)
      puts "Rosters Synchronization complete"
  end

  desc "Synchronize Xmpp Server database with Social Stream Rails Application database."
  desc "Remove all rooms and create one room (also knowledge as MUC) for each Social Stream group."
  task :rooms, [:domain] => :environment do |t, args| 
      puts "Starting presence:synchronize:rooms"
      unless args[:domain]
        puts "No web domain specified"
        domain = SocialStream::Presence.domain
        puts "Executing  rake presence:synchronize:rooms[" + domain + "]"
      else
        domain = args[:domain]
      end
      SocialStream::Presence::XmppServerOrder::synchronizeRooms(domain)
      puts "Rooms Synchronization complete"
  end
end

end