RSS Git Download  Clone
Raw Blame History
use App::Class; # Import::Into

class App::DB {
    use Data::Printer;
	   use DBIx::Simple;
	   use File::Slurper 'read_text';

	   field $cfg  :reader :param; # mandatory
    field $dbix :reader =
		      DBIx::Simple->connect( 'dbi:SQLite:dbname='.$cfg->{dbname} );
	   ADJUST { # p $cfg->{db_init}, as => "db_init file:";
		      my $dbi_trace_level = $ENV{DBI_TRACE} || 0;
		      $dbix->dbh->trace('SQL|'.$dbi_trace_level);
		      # init db if 1st run (creates db also if not exists)
		      my $schema = read_text( $cfg->{db_init} );  # p $sql;
		      $dbix->dbh->do($schema);
	   }
    # timestamp is GMT, needs to be converted to local timezone:
    my $cols = q!id, title, keywords, content, DATETIME(time, 'localtime') !
			 . 'as time';

    method find_user ($username) { # p $dbh->{Name}; p $username;
        my $user = $dbix->select('users', '*', { username => $username })->hash; # p $user;
        return $user;
    }

}