username, ip are required for ADSL storage
[APKPM.git] / lib / APKPM / Store.pm
index e8eeabd..3dd8ad6 100644 (file)
@@ -18,18 +18,25 @@ sub process_name {
 
 sub ADSL : Job : MinProcesses(1) : MaxProcesses(5) : Decode(d_json) {
        my ( $self, $job, $workload ) = @_;
-       warn "# ADSL ",dump($workload);
+
        my $dbh = DBI->connect_cached('DBI:Pg:dbname=apkpm','','', {
                RaiseError => 1,
                AutoCommit => 1,
        });
 
-       my @c = keys %$workload;
+       my $h = $workload->{ADSL} || die "no ADSL in ",dump $workload;
+       foreach my $c ( qw(ip username) ) {
+               $h->{$c} = $workload->{$c} || die "no $c in ",dump $workload;
+       }
+
+       warn "# ADSL ", dump $h;
+
+       my @c = keys %$h;
 
        my $sql = 'INSERT INTO adsl (' . join(',',@c) . ') values (' . join(',', map { '?' } 0 .. $#c) . ')';
        warn $sql;
        my $sth = $dbh->prepare($sql);
-       $sth->execute( map { $workload->{$_} } @c );
+       $sth->execute( map { $h->{$_} } @c );
 }
 
 1;