diff options
| author | franck cuny <franck@lumberjaph.net> | 2011-06-13 17:18:21 +0200 |
|---|---|---|
| committer | franck cuny <franck@lumberjaph.net> | 2011-06-13 17:18:21 +0200 |
| commit | 738500c2fa8c724a2c513ef84ebcba908311671b (patch) | |
| tree | 10a8deb05c4ac9412c0d9f32c72d70440b20590c | |
| parent | makefile (diff) | |
| download | stargit-738500c2fa8c724a2c513ef84ebcba908311671b.tar.gz | |
add memcached; check if login exists else return 404
Signed-off-by: franck cuny <franck@lumberjaph.net>
| -rw-r--r-- | Makefile.PL | 1 | ||||
| -rw-r--r-- | lib/StarGit.pm | 6 | ||||
| -rw-r--r-- | lib/StarGit/Graph.pm | 9 |
3 files changed, 16 insertions, 0 deletions
diff --git a/Makefile.PL b/Makefile.PL index f357e6f..f868404 100644 --- a/Makefile.PL +++ b/Makefile.PL @@ -26,6 +26,7 @@ WriteMakefile( 'MooseX::ConfigFromFile' => 0.03, 'Log::Dispatchouli' => 2.005, 'Net::HTTP::Spore' => 0, + 'Cache::Memcached' => 0, }, dist => { COMPRESS => 'gzip -9f', SUFFIX => 'gz', }, clean => { FILES => 'StarGit-*' }, diff --git a/lib/StarGit.pm b/lib/StarGit.pm index 72933da..6483a73 100644 --- a/lib/StarGit.pm +++ b/lib/StarGit.pm @@ -2,6 +2,7 @@ package StarGit; use Dancer ':syntax'; use StarGit::Graph; +use Cache::Memcached; # don't use it yet our $VERSION = '0.1'; @@ -15,12 +16,17 @@ get '/graph/local/:name' => sub { my $name = params->{'name'}; my $graph = StarGit::Graph->new( name => $name ); + + return send_error( "user " . $name . " doesn't exists", 404 ) + unless $graph->exists($name); + $graph->neighbors( $name, 1 ); $graph->remove_leaves(); return _finalize($graph); }; +# XXX do we already use this one ? get '/graph/query' => sub { my $language = params->{language}; diff --git a/lib/StarGit/Graph.pm b/lib/StarGit/Graph.pm index 1b9dd0a..488d07d 100644 --- a/lib/StarGit/Graph.pm +++ b/lib/StarGit/Graph.pm @@ -19,6 +19,12 @@ has name => ( isa => 'Str', ); +sub exists { + my ($self, $name) = @_; + my $info = $self->db_profiles->find_one( { login => $name } ); + $info; +} + sub neighbors { my ($self, $name) = @_; @@ -130,6 +136,9 @@ sub _create_edge { sub _get_info_from_login { my ($self, $login) = @_; my $info = $self->db_profiles->find_one( { login => $login } ); + + return undef if (!defined $info); + my $country = $info->{country} || 'null'; my $language = $info->{language} || 'null'; return ($country, $language); |
