OSDN Git Service

Eventd: add send_email() to Eventd::Hander
authorhylom <hylom@users.sourceforge.jp>
Wed, 7 Nov 2018 12:13:41 +0000 (21:13 +0900)
committerhylom <hylom@users.sourceforge.jp>
Wed, 7 Nov 2018 12:13:41 +0000 (21:13 +0900)
src/newslash_web/lib/Newslash/Eventd/Handler.pm
src/newslash_web/lib/Newslash/Eventd/Handler/User.pm

index cec4568..b13735b 100644 (file)
@@ -6,6 +6,7 @@ use Data::Dumper;
 
 sub new {
     my ($class, $app, $options) = @_;
+    $options ||= {};
     bless {
            _options => $options,
            _app => $app,
@@ -14,6 +15,7 @@ sub new {
            template_paths => [
                               File::Spec->join($app->home, 'templates'),
                              ],
+           _test => $options->{test} || 0,
           }, $class;
 }
 
@@ -49,6 +51,19 @@ sub render {
     return $rs;
 }
 
+sub send_email {
+    my $self = shift;
+    my $args = {@_};
+
+    if ($self->{_test}) {
+        $self->{_test_mailque} //= [];
+        my $result = $self->app->sendmail(render_only => 1, @_);
+        $result ||= {};
+        push @{$self->{_test_mailque}}, $result;
+    }
+    return $self->app->sendmail(@_);
+}
+
 sub create_message {
     my $self = shift;
     my $params = {@_};
index 3f20263..32871d4 100644 (file)
@@ -65,9 +65,9 @@ sub create {
     # send message
     my $render_params = { nickname => $the_user->{nickname},
                           token => $token };
-    my $rs = $self->app->sendmail(to => $the_user,
-                                  template => "message/initial_password",
-                                  params => $render_params);
+    my $rs = $self->send_email(to => $the_user,
+                               template => "message/initial_password",
+                               params => $render_params);
 
     if (!$rs) {
         # error !
@@ -139,9 +139,9 @@ sub reset_password {
     # send message
     my $render_params = { nickname => $the_user->{nickname},
                           token => $token };
-    my $rs = $self->app->sendmail(to => $the_user,
-                                  template => "message/password_reset",
-                                  params => $render_params);
+    my $rs = $self->send_email(to => $the_user,
+                               template => "message/password_reset",
+                               params => $render_params);
 
     if (!$rs) {
         # error !