1
0
Fork 0
mirror of https://github.com/perlbot/perlbuut-pastebin synced 2025-06-07 14:17:26 -04:00
perlbuut-pastebin/lib/App/Controller/Eval.pm

44 lines
942 B
Perl

package App::Controller::Eval;
use strict;
use warnings;
use Mojo::Base 'Mojolicious::Controller';
use Mojo::Promise;
sub routes {
my ($class, $r) = @_;
my $route = sub {
my ($method, $route, $action) = @_;
$r->$method($route)->to(controller => 'eval', action => $action);
};
$route->(post => '/eval' => 'run_eval');
}
sub run_eval {
my ($self) = @_;
my $data = $self->req->body_params;
$self = $self->inactivity_timeout(3600);
my $code = $data->param('code') // '';
my $language = $data->param('language') // 'perl';
my $promise = Mojo::Promise->new(sub {
my ($resolve, $reject) = @_;
$self->eval->get_eval(undef, $code, [$language], 1, $resolve);
});
$promise->then(sub {
my ($evalres) = @_;
use Data::Dumper;
print Dumper("wutwut", $evalres);
my $output = $evalres->{output};
$self->render(json => {evalout => $output});
})
}
1;