|
|
|
@ -8,6 +8,8 @@ use warnings;
|
|
|
|
|
use Types::Standard qw/Str Int InstanceOf ArrayRef Maybe HasMethods/;
|
|
|
|
|
use Params::ValidationCompiler qw(validation_for);
|
|
|
|
|
|
|
|
|
|
use DateTime::Format::ISO8601;
|
|
|
|
|
|
|
|
|
|
{
|
|
|
|
|
my $validator = validation_for(
|
|
|
|
|
params => {
|
|
|
|
@ -58,7 +60,7 @@ EOF
|
|
|
|
|
my $username = "\@@{[$user->username]}:" // '';
|
|
|
|
|
my $user_id = $user->id_user;
|
|
|
|
|
$logger->log_info("Trying to register ${username}${user_id}.");
|
|
|
|
|
my $success = 0 +
|
|
|
|
|
my $success = 0 +
|
|
|
|
|
$db->do( $insert, {}, $user->id_user, $user->username, $user->karma );
|
|
|
|
|
if ($success) {
|
|
|
|
|
$logger->log_info("${username}${user_id} registered.");
|
|
|
|
@ -153,7 +155,7 @@ EOF
|
|
|
|
|
$user->karma( $user_with_new_karma->karma );
|
|
|
|
|
$logger->log_info( 'User '
|
|
|
|
|
. $user->first_name . ':'
|
|
|
|
|
. ($user->username // '') . ':'
|
|
|
|
|
. ( $user->username // '' ) . ':'
|
|
|
|
|
. $user->id_user
|
|
|
|
|
. ' has now '
|
|
|
|
|
. $user->karma
|
|
|
|
@ -161,6 +163,32 @@ EOF
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
{
|
|
|
|
|
my $validator = validation_for(
|
|
|
|
|
params => {
|
|
|
|
|
user => { type => InstanceOf ['DoctorKarma::Model::User'] },
|
|
|
|
|
last_karma_given_date =>
|
|
|
|
|
{ type => InstanceOf ['DateTime'], optional => 1 },
|
|
|
|
|
}
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
sub update_last_karma_given_date {
|
|
|
|
|
my $self = shift;
|
|
|
|
|
my %params = $validator->(@_);
|
|
|
|
|
my $db = $self->_db;
|
|
|
|
|
|
|
|
|
|
my $last_karma_given_date = $params{last_karma_given_date};
|
|
|
|
|
my $user = $params{user};
|
|
|
|
|
|
|
|
|
|
$db->do( <<'EOF', {}, $last_karma_given_date . '', $user->id_user );
|
|
|
|
|
UPDATE users SET last_karma_given_date=? WHERE id = ?;
|
|
|
|
|
EOF
|
|
|
|
|
my $user_with_new_last_karma =
|
|
|
|
|
$self->recover_id( id => $user->id_user );
|
|
|
|
|
$user->last_karma_given_date( $user->last_karma_given_date );
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
{
|
|
|
|
|
my $validator = validation_for(
|
|
|
|
|
params => {
|
|
|
|
@ -306,6 +334,11 @@ EOF
|
|
|
|
|
for my $key_field ( keys %$user_db ) {
|
|
|
|
|
$user_db->{$key_field} // delete $user_db->{$key_field};
|
|
|
|
|
}
|
|
|
|
|
if ( defined $user_db->{last_karma_given_date} ) {
|
|
|
|
|
my $iso8601 = DateTime::Format::ISO8601->new;
|
|
|
|
|
$user_db->{last_karma_given_date} =
|
|
|
|
|
$iso8601->parse_datetime( $user_db->{last_karma_given_date} );
|
|
|
|
|
}
|
|
|
|
|
return DoctorKarma::Model::User->new(%$user_db);
|
|
|
|
|
}
|
|
|
|
|
return undef;
|
|
|
|
|