From 8adca327fd976b117ccfa4d69903ee24e4f9bca4 Mon Sep 17 00:00:00 2001 From: Daniel Friesel Date: Mon, 4 Mar 2019 18:17:03 +0100 Subject: prepare DB schema for public registration --- index.pl | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) (limited to 'index.pl') diff --git a/index.pl b/index.pl index 71ecd92..513cf29 100755 --- a/index.pl +++ b/index.pl @@ -177,6 +177,20 @@ app->attr( qq{select id from users where name = ?}); } ); +app->attr( + get_user_query => sub { + my ($self) = @_; + + return $self->app->dbh->prepare( + qq{ + select + id, name, status, is_public, email, + registered_at, last_login, deletion_requested + from users where id = ? + } + ); + } +); app->attr( get_stationid_by_ds100_query => sub { my ($self) = @_; @@ -445,6 +459,35 @@ helper 'get_station_id' => sub { } }; +helper 'get_user_data' => sub { + my ($self) = @_; + + my $uid = $self->get_user_id; + my $query = $self->app->get_user_query; + $query->execute($uid); + my $rows = $query->fetchall_arrayref; + if ( @{$rows} ) { + my @row = @{ $rows->[0] }; + return { + id => $row[0], + name => $row[1], + status => $row[2], + is_public => $row[3], + email => $row[4], + registered_at => DateTime->from_epoch( + epoch => $row[5], + time_zone => 'Europe/Berlin' + ), + last_seen => DateTime->from_epoch( + epoch => $row[6], + time_zone => 'Europe/Berlin' + ), + deletion_requested => $row[7] + }; + } + return; +}; + helper 'get_user_name' => sub { my ($self) = @_; -- cgit v1.2.3