#!/usr/bin/perl -w

use strict;
use warnings;
use Getopt::Long qw(:config no_ignore_case);
use Perun::Agent;
use Perun::Common qw(printMessage);

sub help {
	return qq{
	Moves membership in VO from the source user to the target user.
	Both user's ids and VO id are required fields.
	------------------------------------
	Available options:
	--sourcetUserId   | -s source user id
	--targetUserId    | -t target user id
	--voId            | -v VO id
	--batch           | -b batch
	--help            | -h prints this help
	};
}

my ($sourceUserId, $targetUserId, $voId, $batch);
GetOptions ("help|h"     => sub {
		print help();
		exit 0;
	},
	"sourceUserId|s=i"       => \$sourceUserId,
	"targetUserId|t=i"       => \$targetUserId,
	"voId|v=i"               => \$voId,
	"batch|b"                => \$batch) || die help();

# Check options
unless (defined($sourceUserId)) { die "ERROR: sourceUserId is required \n";}
unless (defined($targetUserId)) { die "ERROR: targetUserId is required \n";}
unless (defined($voId)) { die "ERROR: voId is required \n";}

my $agent = Perun::Agent->new();
my $membersAgent = $agent->getMembersAgent;

$membersAgent->moveMembership( sourceUser => $sourceUserId, targetUser => $targetUserId, vo => $voId );

printMessage("Membership in VO: $voId was moved from source user Id: $sourceUserId to target user Id: $targetUserId", $batch);
