mirror of
https://github.com/perlbot/perlbuut-pastebin
synced 2025-06-07 06:06:23 -04:00
Switch to Mojo::Promise
This commit is contained in:
parent
818a621dce
commit
d9a683e785
4 changed files with 28 additions and 25 deletions
|
@ -4,6 +4,7 @@ use strict;
|
|||
use warnings;
|
||||
|
||||
use Mojo::Base 'Mojolicious::Controller';
|
||||
use Mojo::Promise;
|
||||
|
||||
sub routes {
|
||||
my ($class, $r) = @_;
|
||||
|
@ -28,12 +29,11 @@ sub api_get_paste {
|
|||
my $row = $c->paste->get_paste($pasteid);
|
||||
|
||||
if ($row) {
|
||||
$c->delay(sub {
|
||||
my ($delay) = @_;
|
||||
$c->eval->get_eval($pasteid, $row->{paste}, [$row->{language}], 0, $delay->begin(0, 1))
|
||||
},
|
||||
sub {
|
||||
my ($delay, $evalres) = @_;
|
||||
my $promise = Mojo::Promise->new(sub {
|
||||
my ($resolve, $reject) = @_;
|
||||
$c->eval->get_eval($pasteid, $row->{paste}, [$row->{language}], 0, $resolve)
|
||||
})->then(sub {
|
||||
my ($evalres) = @_;
|
||||
|
||||
my ($status, $output_hr) = $evalres->@{qw/status output/};
|
||||
|
||||
|
@ -52,6 +52,7 @@ sub api_get_paste {
|
|||
|
||||
$c->render(json => $data);
|
||||
});
|
||||
return $promise;
|
||||
} else {
|
||||
# 404
|
||||
return $c->reply->not_found;
|
||||
|
|
|
@ -5,6 +5,7 @@ use warnings;
|
|||
|
||||
use Mojo::Base 'Mojolicious::Controller';
|
||||
use Function::Parameters;
|
||||
use Mojo::Promise;
|
||||
|
||||
sub routes {
|
||||
my ($class, $r) = @_;
|
||||
|
@ -48,12 +49,11 @@ sub api_get_paste {
|
|||
my $row = $c->paste->get_paste($pasteid);
|
||||
|
||||
if ($row) {
|
||||
$c->delay(sub {
|
||||
my ($delay) = @_;
|
||||
$c->eval->get_eval($pasteid, $row->{paste}, [$row->{language}], 0, $delay->begin(0, 1))
|
||||
},
|
||||
sub {
|
||||
my ($delay, $evalres) = @_;
|
||||
my $promise = Mojo::Promise->new(sub {
|
||||
my ($resolve, $reject) = @_;
|
||||
$c->eval->get_eval($pasteid, $row->{paste}, [$row->{language}], 0, $resolve)
|
||||
})->then(sub {
|
||||
my ($evalres) = @_;
|
||||
|
||||
my ($status, $output_hr) = $evalres->@{qw/status output/};
|
||||
|
||||
|
@ -69,6 +69,7 @@ sub api_get_paste {
|
|||
|
||||
$c->render(json => $data);
|
||||
});
|
||||
return $promise;
|
||||
} else {
|
||||
# 404
|
||||
return $c->reply->not_found;
|
||||
|
|
|
@ -4,6 +4,7 @@ use strict;
|
|||
use warnings;
|
||||
|
||||
use Mojo::Base 'Mojolicious::Controller';
|
||||
use Mojo::Promise;
|
||||
|
||||
sub routes {
|
||||
my ($class, $r) = @_;
|
||||
|
@ -25,14 +26,11 @@ sub run_eval {
|
|||
my $code = $data->param('code') // '';
|
||||
my $language = $data->param('language') // 'perl';
|
||||
|
||||
$self->delay(sub {
|
||||
my $delay = shift;
|
||||
$self->eval->get_eval(undef, $code, [$language], 1, $delay->begin(0,1));
|
||||
|
||||
return 1;
|
||||
},
|
||||
sub {
|
||||
my $delay = shift;
|
||||
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;
|
||||
|
|
|
@ -6,6 +6,7 @@ use warnings;
|
|||
use App::Config;
|
||||
use Mojo::Base 'Mojolicious::Controller';
|
||||
use Mojo::IOLoop;
|
||||
use Mojo::Promise;
|
||||
|
||||
sub routes {
|
||||
my ($class, $r) = @_;
|
||||
|
@ -82,12 +83,12 @@ sub get_paste {
|
|||
my $row = $c->paste->get_paste($pasteid);
|
||||
|
||||
if ($row) {
|
||||
$c->delay(sub {
|
||||
my $delay = shift;
|
||||
my $promise = Mojo::Promise->new(sub {
|
||||
my $resolve = shift;
|
||||
|
||||
$c->eval->get_eval($pasteid, $row->{paste}, [$row->{language}], 0, $delay->begin(0,1));
|
||||
}, sub {
|
||||
my ($delay, $evalres) = @_;
|
||||
$c->eval->get_eval($pasteid, $row->{paste}, [$row->{language}], 0, $resolve);
|
||||
})->then(sub {
|
||||
my ($evalres) = @_;
|
||||
|
||||
my ($status, $evalout) = $evalres->@{qw/status output/};
|
||||
$c->stash($row);
|
||||
|
@ -101,6 +102,8 @@ sub get_paste {
|
|||
|
||||
$c->render('page');
|
||||
});
|
||||
|
||||
return $promise
|
||||
} else {
|
||||
return $c->reply->not_found;
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue