]> git.donarmstrong.com Git - debbugs.git/blob - lib/Debbugs/Mojo/Controller/Config.pm
serve configuration items as json under the config space
[debbugs.git] / lib / Debbugs / Mojo / Controller / Config.pm
1 package Debbugs::Mojo::Controller::Config;
2
3 use Mojo::Base 'Mojolicious::Controller';
4
5 use Debbugs::Config qw(config);
6
7 my %whitelist;
8
9 for (qw(tags distribution_aliases distributions),
10      qw(tags_single_letter severity_list strong_severities),
11      qw(severity_display project project_title),
12      qw(web_domain email_domain),
13     ) {
14     $whitelist{$_} = 1;
15 }
16 sub show {
17     my $c = shift;
18     my $item = $c->stash('item');
19     return $c->reply->not_found unless $whitelist{$item};
20     my $m = config()->meta->find_method_by_name($item);
21     return $c->reply->not_found unless defined $m;
22     my $r = $m->(config());
23     return $c->render(json => $r);
24 }
25
26 1;