package PiTube::Controller::Record;
use Mojo::Base 'Mojolicious::Controller';

sub list {
    my $c = shift;

    my $readable = $c->schema->resultset('ACL')->user_acl(
        $c->session->{user}, 4
    );

    my $cond = {
        is_active => 't',
        -or => [
            { stream_is_public => 't' },
            { stream_key => { -in => $readable }},
        ]
    };

    my $records = $c->schema->resultset('Record_view')->search(
        $cond,
        { order_by => { -desc => 'begin' }}
    );

    my @records = ();

    RECORD:
    while ( my $record = $records->next()) {

        my %record = (
            $record->get_columns(),
        );

        push @records, \%record;
    }

    $c->render( json => \@records );
}

sub player {
    my $c = shift;

    # vzdy aktualizovat
    $c->session->{user}{acl} = $c->schema->resultset('ACL')->user_acl(
        $c->session->{user}
    );

    # record
    my $record = $c->schema->resultset('Record_view')->find({
        id => $c->stash->{id}
    });

    if ( ! $record ) {
        $c->render('record/404');
        return;
    }

    $c->stash->{record} = {
        $record->get_columns,
    };

    if ( ! ( $c->session->{user}{acl}{ $record->stream_key } & 4 ) ) { # TODO:constant
        $c->render('record/403');
        return;
    }

    $c->render();
}

1;