Committer: vtroitsky
OPSC-399: Endpoint /__api_endpoint/* to accept LJ OS API requests on www.* users.* and games.* domainsU trunk/cgi-bin/Apache/LiveJournal.pm U trunk/cgi-bin/LJ/URI.pm
Modified: trunk/cgi-bin/Apache/LiveJournal.pm =================================================================== --- trunk/cgi-bin/Apache/LiveJournal.pm 2011-10-24 14:22:40 UTC (rev 20424) +++ trunk/cgi-bin/Apache/LiveJournal.pm 2011-10-25 09:18:44 UTC (rev 20425) @@ -1078,15 +1078,11 @@ my $view = $determine_view->($user, "safevhost", $uri); return $view if defined $view; } - elsif ( $func eq 'api' ) { + elsif ( $func eq 'api' || LJ::Request->uri =~ /^\/__api_endpoint.*$/) { Apache::LiveJournal::Interface::Api->load; LJ::Request->handler("perl-script"); LJ::Request->push_handlers(PerlHandler => \&Apache::LiveJournal::Interface::Api::handler); return LJ::Request::OK; - - LJ::Request->pnotes ('error' => 'e404'); - LJ::Request->pnotes ('remote' => LJ::get_remote()); - return LJ::Request::NOT_FOUND; } elsif ( $func eq "games" ) { LJ::get_remote(); Modified: trunk/cgi-bin/LJ/URI.pm =================================================================== --- trunk/cgi-bin/LJ/URI.pm 2011-10-24 14:22:40 UTC (rev 20424) +++ trunk/cgi-bin/LJ/URI.pm 2011-10-25 09:18:44 UTC (rev 20425) @@ -15,6 +15,14 @@ return LJ::Request::OK; } +sub api_handler { + my ($class) = @_; + Apache::LiveJournal::Interface::Api->load; + LJ::Request->handler("perl-script"); + LJ::Request->push_handlers(PerlHandler => \&Apache::LiveJournal::Interface::Api::handler); + return LJ::Request::OK; +} + # Handle a URI. Returns response if success, undef if not handled # Takes URI and Apache $r sub handle { @@ -29,6 +37,11 @@ return LJ::URI->bml_handler($bml_handler_path) if $bml_handler_path; } + # handle "API" endpoint + if ($uri =~ /^\/__api_endpoint.*$/) { + return LJ::URI->api_handler(); + } + ## URI "/pics" can be handle only under user domains return undef if $uri =~ /^\/pics/;