Daje-Plugin-Tools

 view release on metacpan or  search on metacpan

lib/Daje/Document/Templates/Tools/Generate/Perl.pm  view on Meta::CPAN

# janeskil1525 E<lt>janeskil1525@gmail.com
#

# This file is generated automatically by Daje Tools [% date_time %].
# It will be re-created by Daje Tools again and any changes
# will be over written.
#
# <!-- Autogenerated file [%- date_time %] -->

our $VERSION = '0.01';

has 'fields' => '"[%- project_name -%]_[%- table.table_name -%]_pkey", "editnum", "insby", "insdatetime", "modby", "moddatetime",
[%- FOREACH field IN fields -%]
[%- IF field.foreign_key %]
"[%- project_name -%]_[%- field.fieldname %]_fkey"[% "," IF loop.last() == 0 %]
[%- ELSE -%]
"[%- field.fieldname %]"[% "," IF loop.last() == 0 %]
[%- END -%]
[%- END -%]';
has 'primary_key_name' => "[%- project_name -%]_[%- table.table_name -%]_pkey";
has 'table_name' => "[%- project_name -%]_[%- table.table_name -%]";
has 'mandatory' => '[%- FOREACH field IN fields -%]
[%- IF field.foreign_key && field.mandatory -%]
"[%- project_name -%]_[%- field.fieldname -%]_fkey",
[%- ELSIF field.mandatory -%]
"[%- field.fieldname -%]",
[%- END -%]
[%- END -%]';

[%- FOREACH field IN fields -%]
[%- IF field.foreign_key %]
async sub load_[%- project_name -%]_[%- field.fieldname -%]_fkey_p($self, $[%- project_name -%]_[%- field.fieldname -%]_fkey) {
    return $self->load_[%- project_name -%]_[%- field.fieldname -%]_fkey($[%- project_name -%]_[%- field.fieldname -%]_fkey);
}

sub load_[%- project_name -%]_[%- field.fieldname -%]_fkey($self, $[%- project_name -%]_[%- field.fieldname -%]_fkey) {
    return $self->load_fkey(
        $self->table_name, $self->fields(), "[%- project_name -%]_[%- field.fieldname -%]_fkey", $[%- project_name -%]_[%- field.fieldname -%]_fkey
    );
}
[%- END -%]
[%- END -%]

async sub load_[%- project_name -%]_[%- table.table_name -%]_pkey_p($self, $[%- project_name -%]_[%- table.table_name -%]_pkey) {
    return $self->load_[%- project_name -%]_[%- table.table_name -%]_pkey($[%- project_name -%]_[%- table.table_name -%]_pkey);
}

sub load_[%- project_name -%]_[%- table.table_name -%]_pkey($self, $[%- project_name -%]_[%- table.table_name -%]_pkey) {
    return $self->load_pk(
        $self->table_name, $self->fields(), $self->primary_key_name(), $[%- project_name -%]_[%- table.table_name -%]_pkey
    );
}

sub insert($self, $data) {
    my $result = $self->SUPER::insert(
        $self->table_name, $data, $self->primary_key_name
    );
    return $result;
}

sub update($self, $data) {
    return $self->SUPER::update
    (
        $self->table_name, $data,
            {
                $self->primary_key_name() => $data->{$self->primary_key_name()}
            }
    );
}

sub delete($self, $data) {
    return $self->SUPER::delete(
        $self->table_name,
            {
                $self->primary_key_name() => $data->{$self->primary_key_name()}
            }
     );
}
1;

@@ plugin

package Daje::Plugin::[% plugin_name %];
use Mojo::Base 'Mojolicious::Plugin', -base, -signatures;
use v5.42;

# NAME
# ====
#
# Daje::Plugin::[% plugin_name %] - Mojolicious Plugin
#
# SYNOPSIS
# ========
#
# Mojolicious
# ===========
#
#      $self->plugin('[% plugin_name %]');
#
# Mojolicious::Lite
# =================
#
#      plugin '[% plugin_name %]';
#
# DESCRIPTION
# ===========
#
# Daje::Plugin::[% plugin_name %] is a Mojolicious plugin.
#
# METHODS
# =======
#
# Daje::Plugin::[% plugin_name %] inherits all methods from
# Mojolicious::Plugin and implements the following new ones.
#
# register
# ========
#  $plugin->register(Mojolicious->new);
#
# Register plugin in L<Mojolicious> application.
#



( run in 0.953 second using v1.01-cache-2.11-cpan-39bf76dae61 )