From 15a4dae162626075e802d1e6039ad2b3a7f2aad6 Mon Sep 17 00:00:00 2001 From: Dietmar Maurer Date: Fri, 2 May 2014 06:50:56 +0200 Subject: [PATCH 1/1] new helper register_page_formater --- data/PVE/RESTHandler.pm | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/data/PVE/RESTHandler.pm b/data/PVE/RESTHandler.pm index e2e17e4..e1fb823 100644 --- a/data/PVE/RESTHandler.pm +++ b/data/PVE/RESTHandler.pm @@ -235,6 +235,31 @@ sub register_method { push @{$method_registry->{$self}}, $info; } +sub register_page_formater { + my ($self, %config) = @_; + + my $format = $config{format} || + die "missing format"; + + my $path = $config{path} || + die "missing path"; + + my $method = $config{method} || + die "missing method"; + + my $code = $config{code} || + die "missing formater code"; + + my $uri_param = {}; + my ($handler, $info) = $self->find_handler($method, $path, $uri_param); + die "unabe to find handler for '$method: $path'" if !($handler && $info); + + die "duplicate formater for '$method: $path'" + if $info->{formater} && $info->{formater}->{$format}; + + $info->{formater}->{$format} = $code; +} + sub AUTOLOAD { my ($this) = @_; -- 2.39.2