1
Bob's Low Cost Insurance
2
Tom's Great Insurance
####
sub doGetClientList {
# deal with arguments
# warn Dumper(\@_);
shift; # remove class name
my $cookie = shift; # unused currently
# talk to database
my $dbh = _dbh();
my $sql = "select * from client";
my $sth = $dbh->prepare($sql) or die "prep $sql";
$sth->execute() or die "exec $sql";
my $clientlist = [];
while (my $row = $sth->fetchrow_hashref()) {
# my $soapclientrec = SOAP::Data->new();
# $soapclientrec->name('clientrecord');
# $soapclientrec->type('typens:ClientRecord');
push(@$clientlist,$row);
}
warn "PID=$$ " . Dumper($clientlist);
# warn "PID=$$ clients=(" . join(',',@$clientlist) . ")";
# warn "here";
# return ({records=>$clientlist});
# return SOAP::Data->name("records" =>
# SOAP::Data->value( SOAP::Data->name("client" => @$clientlist)
# ->type("ClientRecord")
# )
# )->type("ClientRecordArray");
my @soaprecs;
foreach my $row (@$clientlist) {
foreach my $key (keys %$row) {
unless (defined $row->{$key}) {
$row->{$key} = '';
}
}
my $clirec = SOAP::Data->new();
$clirec->name('ClientRecord');
#$clirec->value($row->{clientid});
$clirec->value($row);
$clirec->type('typens::ClientRecord');
push(@soaprecs,$clirec);
}
#warn Dumper(\@soaprecs);
my $reccount = scalar(@soaprecs);
my $clientarray = SOAP::Data->new();
$clientarray->name('ClientArray');
# $clientarray->value(@soaprecs);
$clientarray->value('blah blah');
$clientarray->attr({'SOAP-ENC:arrayType'=>"typens:ClientRecord[$reccount]",
# 'xsi:type' => 'SOAP-ENC:Array',
});
$clientarray->type('SOAP-ENC:Array',);
my $records = SOAP::Data->new();
$records->name('records');
$records->value($clientarray);
$records->type('typens:ClientRecordList');
# warn "about to encode array";
# use warnings;
# my $serializer = SOAP::Serializer->new();
# warn "got serializer";
# my $records = $serializer->encode_array($clientlist,'clientlist','ClientRecordArray',{});
# my $records = $serializer->encode_object($clientlist,'clientlist','ClientRecordArray');
# warn Dumper($records);
return $records;
}