OSDN Git Service

Plugin::Users: change_email() doesn't "new_email_ts" param
authorhylom <hylom@users.sourceforge.jp>
Wed, 7 Nov 2018 12:11:45 +0000 (21:11 +0900)
committerhylom <hylom@users.sourceforge.jp>
Wed, 7 Nov 2018 12:11:45 +0000 (21:11 +0900)
src/newslash_web/lib/Newslash/Plugin/Users.pm
src/newslash_web/t/api/user.t

index df329be..9b046ba 100644 (file)
@@ -34,28 +34,15 @@ sub change_email {
     my $users = $self->app->model('users');
     my $param = $users->param;
 
-    $param->start_transaction;
-    my $rs = $param->insert(uid => $user->{uid},
-                            name => "new_email",
-                            value => $email);
+    my $rs = $param->set(uid => $user->{uid},
+                         name => "new_email",
+                         value => $email);
 
-    if (!$rs) {
-        $self->app->error("Users: update users_param table for change_email failed! uid: $user->{uid}");
-        $self->last_error($param->last_error);
-        $param->rollback;
-        return;
-    }
-
-    $rs = $param->insert(uid => $user->{uid},
-                         name => "new_email_ts",
-                         value => {function => "NOW()"});
-    if (!$rs) {
+    if (!defined $rs) {
         $self->app->error("Users: update users_param table for change_email failed! uid: $user->{uid}");
         $self->last_error($param->last_error);
-        $param->rollback;
         return;
     }
-    $param->commit;
 
     $self->app->event_que->emit("user", "change_email", $user->{uid}, $user->{uid}, 10);
     return 1;
index 76fa2af..5488e0a 100644 (file)
@@ -116,19 +116,27 @@ subtest 'update email' => sub {
     my $users = $t->app->model('users');
     my $params = $users->param->select(uid => $user->{uid});
     is($params->{new_email}, $new_address, "insert new address to params table");
-    my $dt = eval { DateTime::Format::MySQL->parse_datetime($params->{new_email_ts}); };
-    my $e = $@;
-    ok(!$e, "check new_email_ts");
-    diag $e if !$t->success;
 
-    if (!$e) {
-        my $now_dt = DateTime->now;
-        my $delta = $now_dt->epoch - $dt->epoch;
-        ok($delta < 3600, "new_email_ts is updated");
-    }
+    # my $dt = eval { DateTime::Format::MySQL->parse_datetime($params->{new_email_ts}); };
+    # my $e = $@;
+    # ok(!$e, "check new_email_ts");
+    # diag $e if !$e;
+    # diag $params->{new_email_ts} if !$e;
+
+    # if (!$e) {
+    #     my $now_dt = DateTime->now;
+    #     my $delta = $now_dt->epoch - $dt->epoch;
+    #     ok($delta < 3600, "new_email_ts is updated");
+    # }
 
     # check if event emited
+    my $events = $t->app->model('events');
+    my $ev = $events->select(event_type => "user",
+                             event_subtype => "change_email",
+                             source_user_id => $user->{uid});
+    ok($ev, "event emited");
 
+    # done
     $test_man->logout;
 };