Revision 1228b36f
Von Werner Hahn vor fast 8 Jahren hinzugefügt
SL/Shop.pm | ||
---|---|---|
package SL::Shop;
|
||
|
||
use strict;
|
||
|
||
use parent qw(Rose::Object);
|
||
use SL::ShopConnector::ALL;
|
||
use SL::DB::Part;
|
||
|
||
use Rose::Object::MakeMethods::Generic (
|
||
'scalar' => [ qw(config) ],
|
||
'scalar --get_set_init' => [ qw(connector) ],
|
||
);
|
||
|
||
sub updatable_parts {
|
||
my ($self, $last_update) = @_;
|
||
$last_update ||= DateTime->now(); # need exact timestamp, with minutes
|
||
|
||
my $parts;
|
||
my $active_shops = SL::DB::Manager::Shop->get_all(query => [ obsolete => 0 ]);
|
||
foreach my $shop ( @{ $active_shops } ) {
|
||
# maybe run as an iterator? does that make sense with with_objects?
|
||
my $update_parts = SL::DB::Manager::ShopPart->get_all(query => [
|
||
and => [
|
||
'active' => 1,
|
||
'shop_id' => $shop->id,
|
||
# shop => '1',
|
||
or => [ 'part.mtime' => { ge => $last_update },
|
||
'part.itime' => { ge => $last_update },
|
||
'itime' => { ge => $last_update },
|
||
'mtime' => { ge => $last_update },
|
||
],
|
||
]
|
||
],
|
||
with_objects => ['shop', 'part'],
|
||
# multi_many_ok => 1,
|
||
);
|
||
push( @{ $parts }, @{ $update_parts });
|
||
};
|
||
return $parts;
|
||
|
||
};
|
||
|
||
sub check_connectivity {
|
||
my ($self) = @_;
|
||
my $version = $self->connector->get_version;
|
||
return $version;
|
||
}
|
||
|
||
sub init_connector {
|
||
my ($self) = @_;
|
||
# determine the connector from the connector type in the webshop config
|
||
return SL::ShopConnector::ALL->shop_connector_class_by_name($self->config->connector)->new( config => $self->config);
|
||
|
||
};
|
||
|
||
1;
|
||
|
||
__END__
|
||
|
||
=encoding utf8
|
||
|
||
=head1 NAME
|
||
|
||
SL::Shop - Do stuff with WebShop instances
|
||
|
||
=head1 SYNOPSIS
|
||
|
||
my $config = SL::DB::Manager::Shop->get_first();
|
||
my $shop = SL::Shop->new( config => $config );
|
||
|
||
From the config we know which Connector class to load, save in $shop->connector
|
||
and do stuff from there:
|
||
|
||
$shop->connector->get_new_orders;
|
||
|
||
=head1 FUNCTIONS
|
||
|
||
=over 4
|
||
|
||
=item C<updatable_parts>
|
||
|
||
=item C<check_connectivity>
|
||
|
||
=item C<init_connector>
|
||
|
||
=back
|
||
|
||
=head1 BUGS
|
||
|
||
Nothing here yet.
|
||
|
||
=head1 AUTHOR
|
||
|
||
G. Richardson <lt>information@kivitendo-premium.deE<gt>
|
||
|
||
=cut
|
Auch abrufbar als: Unified diff
WebshopApi: SL/Shop.pm