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

class App::Model {
    use App::DB;

	use FindBin qw($RealBin); # warn $RealBin;
    use Crypt::PBKDF2;
    use Data::Printer;
	use Git::Wrapper;
	use Path::Tiny;

	my $git = Git::Wrapper->new($RealBin);

    field $cfg :reader :param; # p $cfg;
    field $db  :reader = App::DB->new( cfg => $cfg );

	method find_user ($username) { $db->find_user($username) }

    method verify_password ($pwd, $hash) {
        Crypt::PBKDF2->new->validate($hash, $pwd); # using defaults for new()
    }

    method get_document ($id) {
        my $result = $self->db->get_document($id); # p $result;
        return $result;
    }

	method save_document ($data) {
		my $result = $self->db->save_document($data); # p $result;
        return $result;
	}

    method find_documents ($str) {
 		my $result = $self->db->find_documents($str); # p $result;
        return $result;
    }

    method app_version { return $git->log } # size of log

	method gitlog { # using Git::Wrapper;
		my $log_count = $git->log; # say $log_count;

		my @dates = $git->RUN('log', '--pretty=format:%ad', qw/--no-merges --date=relative/); # p @dates;
		my @msgs  = $git->RUN('log', '--pretty=format:%s', qw/--no-merges/); # p @msgs;

		my @log = map { date => $dates[$_], msg => $msgs[$_] }, 
			0 .. $log_count - 1; # p @log;
		return \@log;
	}
=begin
	method gitlog { # using Git
		my @args = ('--pretty=format:%ad :: %s', qw/--no-merges --date=relative/);
		my @log  = $git->command( 'log', @args ); # warn Dumper \@log;
		return \@log;
	}
=cut
}