NAME

WWW::Suffit::Plugin::CommonHelpers - Common helpers plugin for Suffit API servers

SYNOPSIS

# in your startup
$self->plugin('WWW::Suffit::Plugin::CommonHelpers');

DESCRIPTION

This plugin is a collection of common helpers for Suffit API servers

HELPERS

This plugin implements the following helpers

base_url

my $url = $c->base_url;

Returns the base URL from request

client_ip

my $ip = $c->client_ip;
my $ip = $c->client_ip([ ..trusted_proxies ...]);

Returns the client IP address

remote_ip

See "client_ip"

reply.error

return $c->reply->error(); # 500, E0500, "Internal server error"
return $c->reply->error("Error message"); # 500, E0500, "Error message"
return $c->reply->error(501 => "Error message");
return $c->reply->error(501 => "Error code" => "Error message");

The method returns error in client request format

NOTE!: This method with HTML format requires the 'error' template

reply.json_error

return $c->reply->json_error(); # 500, E0500, "Internal server error"
return $c->reply->json_error("Error message"); # 500, E0500, "Error message"
return $c->reply->json_error(501 => "Error message");
return $c->reply->json_error(501 => "Error code" => "Error message");

{
  "code": "Error code",
  "message": "Error message",
  "status": false
}

The method returns API error as JSON response

reply.json_ok

return $c->reply->json_ok(); # 200, ""
return $c->reply->json_ok("Ok."); # 200, "Ok."
return $c->reply->json_ok(201 => "Ok."); # 201, "Ok."

{
  "code": "E0000",
  "message": "Ok.",
  "status": true
}

return $c->reply->json_ok({foo => "bar"}); # 200, {...}

{
  "code": "E0000",
  "foo": "bar",
  "status": true
}

return $c->reply->json_ok(201 => {foo => "bar"}); # 201, {...}

# 201
{
  "code": "E0000",
  "foo": "bar",
  "status": true
}

The method returns API success status as JSON response

reply.noapi

return $c->reply->noapi(
    status  => 501, # HTTP status code (default: 200)
    code    => "E0501", # The Suffit error code
    message => "Error message",
    data    => {...}, # Payload data
    html    => { template => "error" }, # HTML options
);

The method returns data in client request format

METHODS

Internal methods

register

Do not use directly. It is called by Mojolicious.

SEE ALSO

Mojolicious, Mojolicious::Plugin

AUTHOR

Serż Minus (Sergey Lepenkov) https://www.serzik.com <abalama@cpan.org>

COPYRIGHT

Copyright (C) 1998-2023 D&D Corporation. All Rights Reserved

LICENSE

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

See LICENSE file and https://dev.perl.org/licenses/