RSS Git Download  Clone
Raw Blame History
package App::Model; # a D2 plugin, provides 'model' keyword

use 5.34.0;
use App::DB;
use Model::Core;
use Data::Printer;
use Dancer2::Plugin;

#plugin_keywords
#    model => { $_[0]->model_core }; # for use if separate 'has' eg has model_core

has db => (
    is => 'lazy',
    # handles => [ 'check_db_connection' ], # to check db handle still connected
    builder => sub { App::DB->new( cfg => shift->app->config ) },
);

has model  => (
    is => 'lazy',
    # handles => [ 'check_db_connection' ], # to check db handle still connected
    plugin_keyword => 1,  # keyword will be 'model'
);
sub _build_model {
    my $plugin = shift; # p $plugin->app->config;
    my %args = (
        #session => $plugin->app->session, # not needed ?
        cfg  => $plugin->app->config,
        db   => $plugin->db,
    );
    Model::Core->new(%args);
    # my $m = Model::Core->new(%args); # p $m; return $m;
}

sub BUILD {
    my $plugin = shift; # p ref $plugin; 'Model' ie self
    # nothing needed here
};

1;