Skip to main content
Indiana University

Help

Web Services API

The following operations are supported. For a formal definition, please review the Service Description.

Sample code in perl:
#!/usr/local/bin/perl
use SOAP::Lite;

my $passcode = "bbf281b6-a9e1-40d8-b598-bab0d080b07c";
my $longURL = "https://go.iu.edu/webservice/v03/GoIUWebService.asmx";
my $tinyURL = "http://dev.go.iu.edu/oj";
my $delURL = "http://dev.go.iu.edu/g8";

our $namespace = "http://dev.go.iu.edu/v03";

our $soap = SOAP::Lite
    ->uri($namespace)
    ->proxy('http://dev.go.iu.edu/webservice/v03/GoIUWebService.asmx')
    ->on_action( sub { join '/', $namespace, $_[1] } )
    ->on_fault(\&soap_fault);

#print "Encode: " . Encode($passcode, $longURL) . "\n";
#print "Delete: " . Delete($passcode, $delURL) . "\n";
print "Decode: " . Decode($tinyURL . "") . "\n";
#print "Create Date: " . GetCreateDate($tinyURL) . "\n";
#print "Total Hits: " . GetTotalHits($tinyURL) . "\n";
#print "Daily Hits: " . GetDailyHits($tinyURL) . "\n";
#print "Monthly Hits: " . GetMonthlyHits($tinyURL) . "\n";

#
# Encode
#
sub Encode()
{
  ($passcode, $longURL) = @_;

  my $method = SOAP::Data->name('Encode')->attr({xmlns => $namespace});

  my @params = ( SOAP::Data->name(passCode => $passcode),
                 SOAP::Data->name(longURL  => $longURL) );
 
  return $soap->call($method => @params)->result;   
}

#
# Delete
#
sub Delete()
{
  ($passcode, $delURL) = @_;

  my $method = SOAP::Data->name('Delete')->attr({xmlns => $namespace});

  my @params = ( SOAP::Data->name(passCode => $passcode),
                 SOAP::Data->name(tinyURL  => $delURL) );
 
  return $soap->call($method => @params)->result;   
}

#
# Decode
#
sub Decode()
{
  ($tinyURL) = @_;

  my $method = SOAP::Data->name('Decode')->attr({xmlns => $namespace});

  my @params = ( SOAP::Data->name(tinyURL => $tinyURL) );
 
  return $soap->call($method => @params)->result;   
}

#
# GetCreateDate
#
sub GetCreateDate()
{
  ($tinyURL) = @_;

  my $method = SOAP::Data->name('GetCreateDate')->attr({xmlns => $namespace});

  my @params = ( SOAP::Data->name(tinyURL => $tinyURL) );
 
  return $soap->call($method => @params)->result;   
}

#
# GetTotalHits
#
sub GetTotalHits()
{
  ($tinyURL) = @_;

  my $method = SOAP::Data->name('GetTotalHits')->attr({xmlns => $namespace});

  my @params = ( SOAP::Data->name(tinyURL => $tinyURL) );
 
  return $soap->call($method => @params)->result;   
}

#
# GetDailyHits
#
sub GetDailyHits()
{
  ($tinyURL) = @_;

  my $method = SOAP::Data->name('GetDailyHits')->attr({xmlns => $namespace});

  my @params = ( SOAP::Data->name(tinyURL => $tinyURL) );
 
  return $soap->call($method => @params)->result;   
}

#
# GetMonthlyHits
#
sub GetMonthlyHits()
{
  ($tinyURL) = @_;

  my $method = SOAP::Data->name('GetMonthlyHits')->attr({xmlns => $namespace});

  my @params = ( SOAP::Data->name(tinyURL => $tinyURL) );
 
  return $soap->call($method => @params)->result;   
}

#
# Error Handling
#
sub soap_fault()
{
  my $soap = shift;
  my $res = shift;
  if( ref( $res ) ) {
    chomp( my $err = $res->faultstring );
    print "SOAP FAULT: $err";
  }
  else {
    chomp( my $err = $soap->transport->status );
    print "TRANSPORT ERROR: $err";
  }
  return new SOAP::SOM;
}