package Lifestream; use Moose; extends "Tatsumaki::Application"; use Lifestream::Handler; use Lifestream::Worker; our $VERSION = '0.01'; has config => ( is => "rw", isa => "HashRef" ); has schema => ( is => 'ro', isa => 'Lifestream::Schema', lazy => 1, default => sub { my $self = shift; return Lifestream::Schema->connect( @{ $self->config->{connect_info} } ); } ); sub app { my ( $class, %args ) = @_; my $self = $class->new( [ '/' => 'Lifestream::Handler', ] ); $self->config( $args{config} ); $self->add_service( Lifestream::Worker->new( config => $self->config ) ); $self; } sub memes { my $self = shift; my $page = shift || 1; my $rs = $self->schema->resultset('Entry') ->search( {}, { rows => 25, order_by => { -desc => [qw/date/], } } ); my $pager = $rs->page($page)->pager(); return { total => int($pager->total_entries / 25), memes => $rs->page($page) }; } sub services { my $self = shift; my $services = $self->schema->resultset('Feed')->search(); return $services; } 1;