From Code to Community: Sponsoring The Perl and Raku Conference 2025 Learn more

use Mojo::Base -base, -signatures;
# NAME
# ====
#
# Daje::Workflow::Database::Model - is the data models used by Daje-Workflow
#
# SYNOPSIS
# ========
#
# use Daje::Workflow::Database::Model;
#
# my $data = Daje::Workflow::Database::Model->new(
# db => $db,
# workflow_pkey => $workflow_pkey,
# workflow_name => $workflow_name,
# context => $context,
# )->load();
#
# my $workflow = $data->workflow();
#
# my $context = $self->context();
#
# $data->insert_history("History");
#
# $data->save_context($context);
#
# $data->save_workflow($workflow);
#
# REQUIRES
# ========
#
# Mojo::Base
#
#
# METHODS
# =======
#
# load($self)
#
# load_context($self)
#
# load_workflow($self)
#
# save_context($self)
#
# save_workflow($self, $workflow)
#
# insert_history($self, $history_text, $class = " ", $internal = 1)
#
# LICENSE
# =======
#
# Copyright (C) janeskil1525.
#
# This library is free software; you can redistribute it and/or modify
# it under the same terms as Perl itself.
#
# AUTHOR
# ======
#
# janeskil1525 E<lt>janeskil1525@gmail.comE<gt>
#
our $VERSION = "0.16";
has 'db'; # Constructor
has 'workflow_pkey'; # Constructor
has 'workflow_name'; # Constructor
has 'context'; # Constructor
has 'workflow_data';
sub load($self) {
eval {
$self->load_workflow();
$self->load_context();
};
my $err = '';
$err = $@ if defined $@;
return $err;
}
sub load_workflow($self) {
my $workflow = Daje::Workflow::Database::Model::Workflow->new(
db => $self->db,
workflow_pkey => $self->workflow_pkey,
workflow => $self->workflow_name,
)->load();
$self->workflow_pkey($workflow->{workflow_pkey});
$self->workflow_data($workflow);
return;
}
sub save_workflow($self, $workflow) {
my $workflow_pkey = Daje::Workflow::Database::Model::Workflow->new(
db => $self->db
)->save(
$workflow
);
return $workflow_pkey;
}
sub load_context($self) {
my $context = Daje::Workflow::Database::Model::Context->new(
db => $self->db,
workflow_pkey => $self->workflow_pkey,
context => $self->context,
)->load_fk();
my $new_context = $self->context();
if(exists $new_context->{context}) {
foreach my $key(keys %{$new_context->{context}}) {
$context->{context}->{$key} = $new_context->{context}->{$key};
}
}
$self->context($context);
return;
}
sub save_context($self, $context) {
Daje::Workflow::Database::Model::Context->new(
db => $self->db,
workflow_pkey => $self->workflow_pkey,
)->save(
$context
);
$self->context($context);
return ;
}
sub insert_history($self, $history_text, $class = " ", $internal = 1) {
return unless defined $history_text and length($history_text) > 0;
my $history->{workflow_fkey} = $self->workflow_pkey();
$history->{history} = $history_text;
$history->{class} = $class;
$history->{internal} = $internal;
Daje::Workflow::Database::Model::History->new(
db => $self->db
)->insert(
$history
);
}
1;
__END__
#################### pod generated by Pod::Autopod - keep this line to make pod updates possible ####################
=head1 NAME
Daje::Workflow::Database::Model - is the data models used by Daje-Workflow
=head1 SYNOPSIS
use Daje::Workflow::Database::Model;
my $data = Daje::Workflow::Database::Model->new(
db => $db,
workflow_pkey => $workflow_pkey,
workflow_name => $workflow_name,
context => $context,
)->load();
my $workflow = $data->workflow();
my $context = $self->context();
$data->insert_history("History");
$data->save_context($context);
$data->save_workflow($workflow);
=head1 REQUIRES
Mojo::Base
=head1 METHODS
load($self)
load_context($self)
load_workflow($self)
save_context($self)
save_workflow($self, $workflow)
insert_history($self, $history_text, $class = " ", $internal = 1)
=head1 AUTHOR
janeskil1525 E<lt>janeskil1525@gmail.comE<gt>
=head1 LICENSE
Copyright (C) janeskil1525.
This library is free software; you can redistribute it and/or modify
it under the same terms as Perl itself.
=cut