+sub changeBirthday : Local {
+ my ( $self, $c ) = @_;
+ my $dbh = $c->model;
+
+ my $query = $dbh->prepare(q{UPDATE users SET birthday = NULLIF($2,'')::date
+ WHERE uid = $1
+ });
+ eval{
+ $query->execute($c->user->id,html_escape $c->req->param('birthday'));
+ };
+ if ($@){
+ if ($@ =~ /invalid input syntax for type date/){
+ $c->flash(error => 'Bad syntax for day, use YYYY-MM-DD.');
+ }else{
+ $c->flash(error => $@);
+ }
+ }
+ $c->res->redirect($c->uri_for(''));
+}
+
+sub changeTimezone : Local {
+ my ( $self, $c ) = @_;
+ my $dbh = $c->model;
+
+ my $timezone = $c->req->param('timezone');
+ my $query = $dbh->prepare(q{UPDATE users SET timezone = $2 WHERE uid = $1});
+ eval{
+ $dbh->selectrow_array(q{SELECT NOW() AT TIME ZONE $1},undef,$timezone);
+ $query->execute($c->user->id,$timezone );
+ };
+ if ($@){
+ $c->flash(error => $@);
+ }
+ $c->res->redirect($c->uri_for(''));
+}