package Jaipo::Service;
use warnings;
use strict;
use base qw/Class::Accessor::Fast/;
__PACKAGE__->mk_accessors (qw/core options trigger_name sp_id/);
=head1 FUNCTIONS
=head2 new
=cut
sub new {
my $class = shift;
my %options = @_;
my $self = {};
bless $self , $class;
$self->trigger_name( $options{trigger_name} );
$self->sp_id( $options{sp_id} );
$self->options( \%options );
return $self;
}
=head2 init
=cut
sub init {
my $self = shift;
}
=head2 new_request
called right before every request
=cut
sub new_request {
my $self = shift;
}
sub dispatch_sub_command {
my ($self, $sub_command, $rest ) = @_;
# service
my $builtin_command = {
m => 'read_user_timeline',
p => 'read_public_timeline',
g => 'read_global_timeline',
'?' => 'help',
};
if( defined $builtin_command->{ $sub_command } ) {
my $func = $builtin_command->{ $sub_command };
$self->$func( $rest );
}
# todo: otherwise we dispatch to service specific command
}
=head2 prereq_plugins
Returns an array of plugin module names that this plugin depends on.
=cut
sub prereq_plugins {
return ();
}
=head1 SERVICE METHODS
=head2 send_msg
=cut
sub send_msg {
}
=head2 set_location
=cut
sub set_location {
}
=head2 read_user_timeline
updates from user him self
=cut
sub read_user_timeline {
}
=head2 read_public_timeline
updates from users friends or follows
=cut
sub read_public_timeline {
}
=head2 read_global_timeline
global timeline ( out of space !! )
=cut
sub read_global_timeline {
}
=head1 FILTER_METHODS
=head2 create_filter
=cut
sub create_filter {
}
=head2 apply_filter
=cut
sub apply_filter {
}
=head2 remove_filter
=cut
sub remove_filter {
}
1;