OSDN Git Service

Eventd: make event handler functions to return result
authorhylom <hylom@users.sourceforge.jp>
Thu, 8 Nov 2018 11:55:17 +0000 (20:55 +0900)
committerhylom <hylom@users.sourceforge.jp>
Thu, 8 Nov 2018 11:55:17 +0000 (20:55 +0900)
src/newslash_web/lib/Newslash/Eventd/Handler/Comment.pm
src/newslash_web/lib/Newslash/Eventd/Handler/Journal.pm
src/newslash_web/lib/Newslash/Eventd/Handler/Submission.pm
src/newslash_web/lib/Newslash/Eventd/Handler/User.pm
src/newslash_web/lib/Newslash/Eventd/Handlers.pm

index 4a3c907..3734eec 100644 (file)
@@ -80,7 +80,7 @@ sub post {
     }
 
     $self->inactivate_event($item->{event_id}, 0);
-    return;
+    return 1;
 }
 
 1;
index c5bdfa7..c39a6e2 100644 (file)
@@ -43,7 +43,7 @@ sub post {
     }
 
     $self->inactivate_event($item->{event_id}, 0);
-    return;
+    return 1;
 }
 
 1;
index b17daf6..8f91323 100644 (file)
@@ -46,7 +46,7 @@ sub post {
         }
     }
     $self->inactivate_event($item->{event_id}, 0);
-    return;
+    return 1;
 }
 
 1;
index e7830ed..38ad411 100644 (file)
@@ -6,20 +6,21 @@ use Email::Valid;
 
 sub login {
     my ($self, $item) = @_;
-    $self->app->log->debug("event user/login processing... uid: $uid");
+    $self->app->log->debug("event user/login processing... uid: $item->{source_user_id}");
 
     # do nothing
     $self->inactivate_event($item->{event_id}, 0);
-    return;
+
+    return 1;
 }
 
 sub logout {
     my ($self, $item) = @_;
-    $self->app->log->debug("event user/logout processing... uid: $uid");
+    $self->app->log->debug("event user/logout processing... uid: $item->{source_user_id}");
 
     # do nothing
     $self->inactivate_event($item->{event_id}, 0);
-    return;
+    return 1;
 }
 
 sub create {
@@ -61,7 +62,7 @@ sub create {
     }
 
     $self->inactivate_event($item->{event_id}, 0);
-    return;
+    return 1;
 }
 
 sub update_password {
@@ -93,7 +94,7 @@ sub update_password {
     }
 
     $self->inactivate_event($item->{event_id}, 0);
-    return;
+    return 1;
 }
 
 sub change_email {
@@ -123,7 +124,7 @@ sub change_email {
 
     my $token = $self->app->users->generate_email_change_token($uid, $email);
     if (!$token) {
-        $self->app->log->error("event user/updatepw faild: token generation error, uid: $uid");
+        $self->app->log->error("event user/change_email faild: token generation error, uid: $uid");
         $self->inactivate_event($item->{event_id}, -1);
         return;
     }
@@ -144,13 +145,13 @@ sub change_email {
     }
 
     # send message to new address
-    my $rs = $self->send_email(to => $email,
-                               template => "message/change_email",
-                               params => $render_params);
+    $rs = $self->send_email(to => $email,
+                            template => "message/change_email",
+                            params => $render_params);
 
     # done
     $self->inactivate_event($item->{event_id}, 0);
-    return;
+    return 1;
 }
 
 sub reset_password {
@@ -192,7 +193,7 @@ sub reset_password {
     }
 
     $self->inactivate_event($item->{event_id}, 0);
-    return;
+    return 1;
 }
 
 1;
index 260e4ab..ed96b67 100644 (file)
@@ -5,6 +5,8 @@ use File::Spec;
 #use Mojo::Loader qw(load_class);
 use Mojo::Util qw(dumper class_to_path);
 
+has 'last_error';
+
 sub load_class { # TODO: mojolicious 5.x has no load_class(),  but load().
     my ($module) = @_;
 
@@ -84,22 +86,23 @@ sub execute {
             # no handler found
             $self->app->log->debug("no handler found for '$item->{event_type}'");
             $self->inactivate_event($item->{event_id}, -128);
+            $self->last_error("NO_HANDLER_FOUND");
             return;
         }
         $self->{_handlers}->{$item->{event_type}}= $handler;
     }
 
     my $f = $handler->can($item->{event_subtype});
-    if ($f) {
-        $self->app->log->debug("handler '$item->{event_subtype}' found for '$item->{event_type}'");
-        $f->($handler, $item);
+    if (!$f) {
+        # no handler found
+        $self->app->log->debug("no '$item->{event_subtype}' handler found for '$item->{event_type}'");
+        $self->inactivate_event($item->{event_id}, -127);
+        $self->last_error("NO_EVENT_FOUND");
         return;
     }
 
-    # no handler found
-    $self->app->log->debug("no '$item->{event_subtype}' handler found for '$item->{event_type}'");
-    $self->inactivate_event($item->{event_id}, -127);
-    return;
+    $self->app->log->debug("handler '$item->{event_subtype}' found for '$item->{event_type}'");
+    return $f->($handler, $item);
 }