mirror of
https://github.com/perlbot/perlbuut-pastebin
synced 2025-06-07 14:17:26 -04:00
44 lines
942 B
Perl
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;
|