#!/usr/bin/perl # SOAP CGI server (method loaded from module 'Report') use strict; use warnings; use Data::Dumper; use SOAP::Transport::HTTP; use lib 'lib'; use Report; my $server = SOAP::Transport::HTTP::CGI ->dispatch_to('urn:Report') ->handle; 1; #### package Report; use Data::Dumper; use strict; use warnings; use ReportRequest; use ReportResponse; =begin WSDL _IN Report $ReportRequest a ReportRequest object _RETURN $ReportResponse a ReportResponse object _DOC Request or retreive a bandwidth report =cut sub Report { =begin WSDL _IN request $ReportRequest a ReportRequest type (this is in the method) _DOC Method: Report =cut # my $class = shift(); # my $self = {}; # my %in = @_; open LOG, ">>soapservice.log"; print LOG "Report method\n"; print LOG Dumper(@_); close LOG; return "fluff"; # bless ($self, $class); } 1; #### package ReportRequest; =pod =begin WSDL _ATTR authuser $string valid username _ATTR authpass $string valid password _ATTR date_from $dateTime report start date (ISO YYYYMMDDTHH:MM) =end WSDL =cut sub new { open LOG, ">>/soapservice.log"; print LOG "ReportRequest:\n"; print LOG Dumper(@_); close LOG; return "ReportRequest"; } 1; #### package ReportResponse; use Data::Dumper; =pod =begin WSDL _ATTR result $boolean resultcode, 1 on success, 0 on failure _ATTR message $string error message (only on failure) =end WSDL =cut sub new { open LOG, ">>/tmp/bandwidthservice.log"; print LOG "Response\n"; print LOG Dumper(@_); close LOG; my $class = "ReportResponse"; my %in = @_; my $self = {}; $self->{result} => $in{result}; $self->{message} => $in{message}; bless $self, $class; return $self; } 1; #### resultcode, 1 on success, 0 on failure error message (only on failure) valid username valid password report start date (ISO YYYYMMDDTHH:MM) a ReportRequest object a ReportResponse object Request or retreive a bandwidth report