package Epoll::Controller::Root;

use strict;
use warnings;
use base 'Catalyst::Controller';

#
# Sets the actions in this controller to be registered with no prefix
# so they function identically to actions created in MyApp.pm
#
__PACKAGE__->config->{namespace} = '';

=head1 NAME

Epoll::Controller::Root - Root Controller for Epoll

=head1 DESCRIPTION

[enter your description here]

=head1 METHODS

=cut

=head2 default

=cut

sub begin : Private {
    my ( $self, $c ) = @_;
    $c->model('Vote')->rollback;
}

sub default : Private {
    my ( $self, $c ) = @_;
    $c->stash->{page}{title} = 'Epoll ' . $Epoll::DB::VERSION;
    if ($c->req->param('mailvoting')) {
        my @polls_voting = $c->model('Vote')->find_poll_by_notyet_voting(
            $c->req->param('mailvoting')
        );
        my @polls_owner = $c->model('Vote')->find_poll_by_owner(
            $c->req->param('mailvoting')
        );

        if (scalar(@polls_voting) || scalar(@polls_owner)) {
            $c->forward(
                q'Epoll::View::Mail', 'render',
                [ 'poll_reminder_voting.tt', {
                    To => $c->req->param('mailvoting'),
                    Subject => $c->localize('Poll request reminder'),
                    mail => {
                        label => $c->localize('Poll request reminder'),
                        polls_owner => \@polls_owner,
                        polls_voting => \@polls_voting,
                    },
                }]
            );
            $c->stash->{sendvoting} = $c->req->param('mailvoting');
        } else {
            $c->stash->{novoting} = $c->req->param('mailvoting');
        }
    }
}

=head2 end

Attempt to render a view, if needed.

=cut 

sub end : Private {
    my ($self, $c) = @_;
    if ($c->res->body) { return }
    else { $c->forward(qw/Epoll::View::TT/) }
}

=head1 AUTHOR

Thauvin Olivier

=head1 LICENSE

This library is free software, you can redistribute it and/or modify
it under the same terms as Perl itself or CeCILL.

=cut

1;
