WWW-Suffit-Plugin-CommonHelpers
view release on metacpan or search on metacpan
lib/WWW/Suffit/Plugin/CommonHelpers.pm view on Meta::CPAN
);
}
sub _reply_noapi {
my $self = shift;
my %args = @_;
my $status = $args{status} || 200; # HTTP status code
my $code = $args{code} || "E0$status"; # The Suffit error code
my $message = $args{error} // $args{message} // ''; # Error message
my $data = $args{data}; # Payload data
my $html = $args{html}; # HTML options
# Correct code and message
unless ($args{code}) {
if ($message =~ s/^(E[0-9]{4})[:]?\s+//) {
$code = $1;
}
}
# Log
if ($status >= 400) {
$self->log->error(sprintf("[%s] %s", $code, $message)) if length $message;
}
# Clean message
$message =~ s/^(E[0-9]{4})[:]?\s+//;
# Respond (extended render)
return $self->respond_to(
json => {
json => {
status => $status < 400 ? \1 : \0,
length $message ? (message => $message) : (),
code => $code,
defined $data ? (is_hash_ref($data) ? (%$data) : is_array_ref($data) ? (data => $data) : ()) : (),
},
status => $status,
},
html => {
message => $message // '',
code => $code,
http_status => $status,
defined $html ? (is_hash_ref($html) ? (%$html) : ()) : (),
defined $data ? (is_hash_ref($data) ? (%$data) : is_array_ref($data) ? (data => $data) : ()) : (),
status => $status,
},
text => {
text => length $message ? $message : defined $data ? $self->dumper($data) : '',
status => $status,
},
any => {
text => length $message ? $message : defined $data ? $self->dumper($data) : '',
status => $status,
},
)
}
sub _client_ip {
my $self = shift;
my $trustedproxies = shift;
$self->req->trusted_proxies($trustedproxies)
if defined($trustedproxies) && is_array_ref($trustedproxies) && $self->req->can("trusted_proxies");
return $self->tx->remote_address; # X-Forwarded-For
}
sub _base_url {
my $self = shift;
my $base_url = $self->req->url->base->path_query('/')->to_string // '';
$base_url =~ s/\/+$//;
return $base_url;
}
1;
__END__
( run in 1.738 second using v1.01-cache-2.11-cpan-39bf76dae61 )