summary refs log tree commit diff
diff options
context:
space:
mode:
authorfranck cuny <franck@lumberjaph.net>2011-03-13 21:40:01 +0100
committerfranck cuny <franck@lumberjaph.net>2011-03-13 21:40:01 +0100
commitd1bfe16f27e799c0569d3f9c79e1902ac155adba (patch)
tree1adc76750e9d1806bb6c3d04262c61f47c8964f2
parentuse username (when Git::Repository works) (diff)
downloadballet-d1bfe16f27e799c0569d3f9c79e1902ac155adba.tar.gz
send messages when a page is updated
Signed-off-by: franck cuny <franck@lumberjaph.net>
-rw-r--r--lib/ballet.pm43
1 files changed, 32 insertions, 11 deletions
diff --git a/lib/ballet.pm b/lib/ballet.pm
index 4be1acc..d42159b 100644
--- a/lib/ballet.pm
+++ b/lib/ballet.pm
@@ -3,21 +3,31 @@ package ballet;
 use 5.010;
 
 use Dancer ':syntax';
-#use Dancer::Plugin::Auth::Twitter;
+use Dancer::Plugin::WebSocket;
+use Dancer::Plugin::FlashMessage;
+use Dancer::Plugin::Auth::Twitter;
 
 use ballet::Git;
 
 our $VERSION = '0.1';
 
-#auth_twitter_init();
+auth_twitter_init();
 
 my $git = ballet::Git->new( wiki_path => setting('wiki_path') );
 
-# before sub {
-#     return if request->path =~ m{/auth/twitter/callback};
-#     if (not session('twitter_user')) {
-#         redirect auth_twitter_authenticate_url;
-#     }
+before sub {
+    return if request->path =~ m{/auth/twitter/callback};
+    if (not session('twitter_user')) {
+        redirect auth_twitter_authenticate_url;
+    }
+};
+
+# ws_on_new_listener sub {
+#     my $user_name = session('twitter_user')->{'screen_name'};
+#     ws_send {
+#         type    => 'notification',
+#         message => "user $user_name has joined the party"
+#     };
 # };
 
 get '/' => sub { wiki_page('Home'); };
@@ -52,7 +62,13 @@ post '/edit/*' => sub {
     my ($page_name) = splat;
 
     my $content = params->{content};
-    update_wiki_page($page_name, $content);
+    update_wiki_page( $page_name, $content );
+    ws_send {
+        type    => 'notification',
+        message => "user "
+          . session('twitter_user')->{screen_name}
+          . " has update a page: $page_name",
+    };
     redirect uri_for('/');
 };
 
@@ -68,13 +84,18 @@ sub wiki_page {
         author  => 'franck',
         date    => '10/10/10',
         content => $content,
-#        user    => session('twitter_user')->{'screen_name'},
+        user    => session('twitter_user')->{'screen_name'},
       };
 }
 
 sub update_wiki_page {
-    my ($page_name, $content) = @_;
-    $git->update_page($page_name, $content);
+    my ( $page_name, $content ) = @_;
+
+    my $env =
+      { env => { GIT_COMMITTER_NAME => session('twitter_user')->{screen_name}, GIT_COMMITER_EMAIL => 'franck@cpan.org'}
+      };
+
+    $git->update_page( $page_name, $content, $env );
 }
 
 true;