Mojo-Cloudflare
view release on metacpan or search on metacpan
t/Helper.pm view on Meta::CPAN
package t::Helper;
use Mojo::Base -base;
use Test::Mojo;
use Test::More;
use Mojo::Cloudflare;
use Mojo::UserAgent;
{
use Mojolicious::Lite;
use Mojo::JSON 'j';
use Mojo::Util qw( spurt slurp );
post '/api_json' => sub {
my $self = shift;
my $form = $self->req->params->to_hash;
my $file = join '.', map { "$_-$form->{$_}" } grep { $_ ne 'tkn' } sort keys %$form;
$file =~ s![^\w\.-]!_!g;
if(-e "local/$file") {
$self->app->log->debug("Read cache: local/$file");
$self->render(text => slurp "local/$file");
}
else {
$self->app->log->debug("Write cache: local/$file");
my $res = $self->app->ua->post(Mojo::Cloudflare->new->api_url, form => $form)->res;
spurt $res->body, "local/$file" if -d 'local';
$self->render(text => $res->body);
}
};
}
sub import {
my $class = shift;
my $caller = caller;
my $test_mojo = Test::Mojo->new;
no strict 'refs';
*{"$caller\::t"} = \$test_mojo;
eval <<" CODE" or die $@;
package $caller;
use Mojo::Base -base;
use Test::More;
strict->import;
warnings->import;
1;
CODE
}
1;
( run in 1.722 second using v1.01-cache-2.11-cpan-5a3173703d6 )