site: allow to directly mount api

This commit is contained in:
Lucas Gabriel Vuotto 2025-05-04 09:36:09 +00:00
parent cc449cd9d7
commit 84a068e5a8
3 changed files with 17 additions and 3 deletions

View file

@ -6,7 +6,6 @@ app->secrets(["unused"]);
app->static->paths(["s"]);
app->static->prefix("/s");
plugin Mount => { "/api/v0" => "script/pooru-api-v0" };
plugin Mount => { "/" => "script/pooru-site" };
app->start;

View file

@ -82,12 +82,21 @@ sub startup ($self)
my $config = $self->plugin("Config");
$self->secrets($config->{secrets});
my %api;
if (defined(my $m = $config->{pooru_api}->{v0}->{mount})) {
$api{v0} = $self->plugin("Mount" => {
$m => $self->home->child("script", "pooru-api-v0"),
})->to_string;
} else {
$api{v0} = $config->{pooru_api}->{v0}->{endpoint};
}
$self->helper(storage => sub {
state $storage = Pooru::Storage::Static->
new($config->{store}, "/s/");
});
$self->helper(api_v0_url => sub {
return Mojo::URL->new($self->config("pooru_api")->{v0});
return Mojo::URL->new("$api{v0}/");
});
$self->helper(extended_pager => \&extended_pager);
$self->helper(tag_for_pager_shortcut => \&tag_for_pager_shortcut);

View file

@ -1,6 +1,12 @@
{
pooru_api => {
v0 => "http://127.0.0.1:3000/api/v0/",
v0 => {
# Recommended for development.
mount => "/api/v0",
# To run in a different location:
#endpoint => "https://api.example.com/v0",
},
},
store => "db/pooru.storable",