[Jifty-commit] r7022 - in jifty/branches/webservices-in-td: share/web/templates/__jifty/webservices
Jifty commits
jifty-commit at lists.jifty.org
Tue May 12 20:49:18 EDT 2009
Author: ruz
Date: Tue May 12 20:49:17 2009
New Revision: 7022
Modified:
jifty/branches/webservices-in-td/lib/Jifty/Web/Services.pm
jifty/branches/webservices-in-td/share/web/templates/__jifty/webservices/json
jifty/branches/webservices-in-td/share/web/templates/__jifty/webservices/xml
jifty/branches/webservices-in-td/share/web/templates/__jifty/webservices/yaml
Log:
* replace share/web/templates/__jifty/webservices/* with method calls
* use lower case method names
Modified: jifty/branches/webservices-in-td/lib/Jifty/Web/Services.pm
==============================================================================
--- jifty/branches/webservices-in-td/lib/Jifty/Web/Services.pm (original)
+++ jifty/branches/webservices-in-td/lib/Jifty/Web/Services.pm Tue May 12 20:49:17 2009
@@ -10,7 +10,7 @@
use Jifty::JSON;
use Jifty::YAML;
-sub JSON {
+sub json {
my $self = shift;
Jifty->handler->apache->content_type("text/x-json");
@@ -25,7 +25,7 @@
Jifty->web->out( Jifty::JSON::objToJson(\%results) );
}
-sub YAML {
+sub yaml {
my $self = shift;
Jifty->handler->apache->content_type("text/x-yaml");
@@ -40,10 +40,10 @@
Jifty->web->out( Jifty::YAML::Dump(\%results) );
}
-sub XML {
+sub xml {
my $self = shift;
- Jifty->handler->apache->content_type('text/xml; charset=utf-8');
+ Jifty->handler->apache->content_type('text/xml; charset=UTF-8');
my $output = "";
my $writer = XML::Writer->new( OUTPUT => \$output, UNSAFE => 1 );
@@ -138,7 +138,7 @@
# Jifty::DBI::Record's yet, which are technically circular data
# structures at some level (current_user of a
# current_user->user_object is itself)
- my $content = stripkids($results{$_}->content);
+ my $content = _stripkids($results{$_}->content);
$writer->raw(XML::Simple::XMLout($content, NoAttr => 1, RootName => "content", NoIndent => 1))
if keys %{$content};
@@ -146,11 +146,10 @@
}
$writer->endTag();
- Jifty->handler->apache->content_type('text/xml; charset=UTF-8');
Jifty->web->out($output);
}
-sub stripkids {
+sub _stripkids {
my $top = shift;
if ( not ref $top ) {
return $top
Modified: jifty/branches/webservices-in-td/share/web/templates/__jifty/webservices/json
==============================================================================
--- jifty/branches/webservices-in-td/share/web/templates/__jifty/webservices/json (original)
+++ jifty/branches/webservices-in-td/share/web/templates/__jifty/webservices/json Tue May 12 20:49:17 2009
@@ -1,13 +1,3 @@
-% $r->content_type("text/x-json");
-<% Jifty::JSON::objToJson(\%results) |n%>
-
<%INIT>
-my %results = Jifty->web->response->results;
-for (values %results) {
- $_ = $_->as_hash;
-
- # backwards compatibility :(
- $_->{_content} = delete $_->{content};
-}
+return Jifty->web->services->json;
</%INIT>
-
Modified: jifty/branches/webservices-in-td/share/web/templates/__jifty/webservices/xml
==============================================================================
--- jifty/branches/webservices-in-td/share/web/templates/__jifty/webservices/xml (original)
+++ jifty/branches/webservices-in-td/share/web/templates/__jifty/webservices/xml Tue May 12 20:49:17 2009
@@ -1,130 +1,3 @@
-<%init>
-my $output = "";
-my $writer = XML::Writer->new( OUTPUT => \$output, UNSAFE => 1 );
-$r->content_type('text/xml; charset=utf-8');
-$writer->xmlDecl( "UTF-8", "yes" );
-$writer->startTag("response");
-
-if (my $ext = Jifty->web->request->argument('_webservice_external_redirect')) {
- $writer->startTag("redirect");
- $writer->cdataElement(url=> $ext);
- $writer->endTag();
- $writer->endTag();
- Jifty->web->out($output);
- $m->abort;
-}
-
-FRAGMENT:
-for my $fragment ( Jifty->web->request->fragments ) {
- # Set up the form if need be
- Jifty->web->form->_init;
- Jifty->web->form->is_open(1) if $fragment->in_form;
-
- # Set up the region stack
- local Jifty->web->{'region_stack'} = [];
- my @regions;
- do {
- push @regions, $fragment;
- } while ($fragment = $fragment->parent);
-
- for my $current (reverse @regions) {
- my $new = Jifty->web->get_region( join '-', grep {$_} Jifty->web->qualified_region, $current->name );
-
- # Arguments can be complex mapped hash values. Get their
- # real values by mapping.
- my %defaults = %{$current->arguments || {}};
- for (keys %defaults) {
- my ($key, $value) = Jifty::Request::Mapper->map(destination => $_, source => $defaults{$_});
- delete $defaults{$_};
- $defaults{$key} = $value;
- }
-
- $new ||= Jifty::Web::PageRegion->new(
- name => $current->name,
- path => URI::Escape::uri_unescape($current->path),
- region_wrapper => $current->wrapper,
- parent => Jifty->web->current_region,
- defaults => \%defaults,
- );
-
- # It's possible that the pageregion creation could fail -- no
- # name, for instance. In that case, bail on this fragment.
- next FRAGMENT unless $new;
-
- $new->enter;
- }
-
- # Stuff the rendered region into the XML
- $writer->startTag( "fragment", id => Jifty->web->current_region->qualified_name );
- my %args = %{ Jifty->web->current_region->arguments };
- $writer->dataElement( "argument", $args{$_}, name => $_) for sort keys %args;
- if (Jifty->config->framework('ClientTemplate') && Jifty->web->current_region->client_cacheable) {
- $writer->cdataElement( "cacheable", Jifty->web->current_region->client_cache_content, type => Jifty->web->current_region->client_cacheable );
- }
- $writer->cdataElement( "content", Jifty->web->current_region->as_string );
- $writer->endTag();
-
- # Clean up region stack and form
- Jifty->web->current_region->exit while Jifty->web->current_region;
- Jifty->web->form->is_open(0);
-}
-
-my %results = Jifty->web->response->results;
-for (keys %results) {
- $writer->startTag("result", moniker => $_, class => $results{$_}->action_class);
- $writer->dataElement("success", $results{$_}->success);
-
- $writer->dataElement("message", $results{$_}->message) if $results{$_}->message;
- $writer->dataElement("error", $results{$_}->error) if $results{$_}->error;
-
- my %warnings = $results{$_}->field_warnings;
- my %errors = $results{$_}->field_errors;
- my %fields; $fields{$_}++ for keys(%warnings), keys(%errors);
- for (sort keys %fields) {
- next unless $warnings{$_} or $errors{$_};
- $writer->startTag("field", name => $_);
- $writer->dataElement("warning", $warnings{$_}) if $warnings{$_};
- $writer->dataElement("error", $errors{$_}) if $errors{$_};
- $writer->endTag();
- }
-
- # XXX TODO: Hack because we don't have a good way to serialize
- # Jifty::DBI::Record's yet, which are technically circular data
- # structures at some level (current_user of a
- # current_user->user_object is itself)
- my $content = stripkids($results{$_}->content);
- $writer->raw(XML::Simple::XMLout($content, NoAttr => 1, RootName => "content", NoIndent => 1))
- if keys %{$content};
-
- $writer->endTag();
-}
-
-$writer->endTag();
-Jifty->handler->apache->content_type('text/xml; charset=UTF-8');
-Jifty->web->out($output);
-</%init>
-<%once>
-use Scalar::Util qw(blessed);
-use XML::Simple;
-sub stripkids {
- my $top = shift;
- if ( not ref $top ) { return $top }
- elsif (
- blessed($top)
- and ( $top->isa("Jifty::DBI::Record")
- or $top->isa("Jifty::DBI::Collection") )
- )
- {
- return undef;
- } elsif ( ref $top eq 'HASH' ) {
- foreach my $item ( keys %$top ) {
- $top->{$item} = stripkids( $top->{$item} );
- }
- } elsif ( ref $top eq 'ARRAY' ) {
- for ( 0 .. $#{$top} ) {
- $top->[$_] = stripkids( $top->[$_] );
- }
- }
- return $top;
-}
-</%once>
+<%INIT>
+return Jifty->web->services->xml;
+</%INIT>
Modified: jifty/branches/webservices-in-td/share/web/templates/__jifty/webservices/yaml
==============================================================================
--- jifty/branches/webservices-in-td/share/web/templates/__jifty/webservices/yaml (original)
+++ jifty/branches/webservices-in-td/share/web/templates/__jifty/webservices/yaml Tue May 12 20:49:17 2009
@@ -1,13 +1,4 @@
-% $r->content_type("text/x-yaml");
-<% Jifty::YAML::Dump(\%results) |n%>
-
<%INIT>
-my %results = Jifty->web->response->results;
-for (values %results) {
- $_ = $_->as_hash;
-
- # backwards compatibility :(
- $_->{_content} = delete $_->{content};
-}
+return Jifty->web->services->yaml;
</%INIT>
More information about the Jifty-commit
mailing list