#!/usr/bin/perl

#################################################################
#                                                               #
#    mldic_client.pl: REST client for smart dictionary lookup   #
#                                                               #
#    Disclaimer: This sample code is distributed under LGPL     #
#                 (http://www.gnu.org/licenses/lgpl.html)       #
#                                                               #
#    Function: Find term variations of a given term             #
#                                                               #
#################################################################

$usage = "
      Usage: mldic_client.pl word [dict] [id]
        dict = HUMAN, MOUSE, E.COLI, YEAST, or DROSOPHIRA
";

use CGI;
use URI::Escape;
use HTTP::Request::Common qw(POST);
use LWP::UserAgent;
use LWP::Simple;

if ( @ARGV == 0 ) { print $usage; exit(0); }

$word = $ARGV[0];
$dic =  $ARGV[1];
$id  =  $ARGV[2];

$METHOD = "GET";   # select one, GET or PUT
# $METHOD = "PUT"; # 

$SITE = "http://text0.mib.man.ac.uk/~sasaki/bootstrep/mldic.cgi";
#$SITE = "http://sasaki1.mib.man.ac.uk/~sasaki/bootstrep/mldic.cgi";

$result = &call_bootstrep_webservice( $METHOD, $SITE, $word, $dic, $id );
print $result;

exit(0);

# --------------------------------------------------------------
sub call_bootstrep_webservice {

    my $method = $_[0];
    my $site = $_[1];
    my $Input = $_[2];
    my $Argument = $_[3];
    my $SubscriptionID = $_[4];

    my $request;
    my $result;

## Escape special symbols

    my $esc = uri_escape( $Input );

## Define a URI
    my $uri = "$site?Input=$esc&Argument=$Argument&SubscriptionID=$SubscriptionID";

    print "[$uri]\n";

## Prepartion
    my $ua = LWP::UserAgent->new;

    if ( $method eq "GET" ) {
       $request = HTTP::Request->new( GET => $uri );
    } else {
       $request = POST( $site, [ Input=> $esc, Argument=>$Argument, 
                                 SubscriptionID=>$SubscriptionID ] );
    }

## Call the URI

    $result = $ua->request( $request );

## Return the reuslt;

    if ( $result->is_error) {
	return "*** Webservice Failed ***\n";
    } else  {
       return $result->content; 
    }

} # end of webservice_mldic

# --------------------------------------------------------------
### end of program
