TXT.pm 1008 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. package Trog::Routes::JSON;
  2. use strict;
  3. use warnings;
  4. no warnings 'experimental';
  5. use feature qw{signatures state};
  6. use Clone qw{clone};
  7. use JSON::MaybeXS();
  8. use Scalar::Util();
  9. use Trog::Utils();
  10. use Trog::Config();
  11. use Trog::Auth();
  12. use Trog::Routes::HTML();
  13. use Trog::Log::Metrics();
  14. my $conf = Trog::Config::get();
  15. # TODO de-duplicate this, it's shared in html
  16. my $theme_dir = '';
  17. $theme_dir = "themes/" . $conf->param('general.theme') if $conf->param('general.theme') && -d "www/themes/" . $conf->param('general.theme');
  18. our %routes = (
  19. '/text/zone' => {
  20. method => 'GET',
  21. callback => \&zone,
  22. parameters => {},
  23. admin => 1,
  24. },
  25. );
  26. sub zone ($query) {
  27. return _render( 200, {}, $query );
  28. }
  29. sub _render ( $code, $headers, %data ) {
  30. return Trog::Renderer->render(
  31. code => 200,
  32. data => \%data,
  33. template => 'zone.tx',
  34. contenttype => 'text/plain',
  35. headers => $headers,
  36. );
  37. }
  38. 1;