diff --git a/Application.pm b/Application.pm index 3a0bd29..38a32cf 100644 --- a/Application.pm +++ b/Application.pm @@ -54,6 +54,7 @@ use Logger; use Template; use SessionHandler; use Modules; +use Message::Queue; use Utils qw(path_join is_defined_numeric get_proc_size); our $errstr; @@ -138,6 +139,12 @@ sub run { # Start doing logging if needed $self -> {"logger"} -> start_log($self -> {"settings"} -> {"config"} -> {"logfile"}) if($self -> {"settings"} -> {"config"} -> {"logfile"}); + # Message queue handling + $self -> {"messages"} = Message::Queue -> new(logger => $self -> {"logger"}, + dbh => $self -> {"dbh"}, + settings => $self -> {"settings"}) + or $self -> {"logger"} -> die_log($self -> {"cgi"} -> remote_host(), "Application: Unable to create message handler: ".$SystemModule::errstr); + # Create the template handler object $self -> {"template"} = Template -> new(logger => $self -> {"logger"}, basedir => $self -> {"settings"} -> {"config"} -> {"template_dir"} || "templates", @@ -206,7 +213,8 @@ sub run { session => $self -> {"session"}, phpbb => $self -> {"phpbb"}, # this will handily be undef if phpbb mode is disabled blockdir => $self -> {"settings"} -> {"paths"} -> {"blocks"} || "blocks", - system => $self -> {"system"}) + system => $self -> {"system"}, + messages => $self -> {"messages"}) or $self -> {"logger"} -> die_log($self -> {"cgi"} -> remote_host(), "Application: Unable to create module handling object: ".$Modules::errstr); if($self -> {"system"}) { @@ -217,7 +225,8 @@ sub run { template => $self -> {"template"}, session => $self -> {"session"}, phpbb => $self -> {"phpbb"}, - modules => $self -> {"modules"}) + modules => $self -> {"modules"}, + messages => $self -> {"messages"}) or $self -> {"logger"} -> die_log($self -> {"cgi"} -> remote_host(), "Application: Unable to create system object: ".$self -> {"system"} -> {"errstr"}); $self -> {"appuser"} -> set_system($self -> {"system"}) if($self -> {"appuser"}); diff --git a/Message/Queue.pm b/Message/Queue.pm index 36a25cc..1935b8d 100644 --- a/Message/Queue.pm +++ b/Message/Queue.pm @@ -85,7 +85,7 @@ sub add_message { $args -> {"send_at"} += $args -> {"delay"} if($args -> {"delay"}); # FUTURE: potentially support other formats here. See also: https://www.youtube.com/watch?v=JENdgiAPD6c however. - my $format = "plain"; + my $args -> {"format"} = "plain"; # Force required fields return $self -> self_error("Email subject not specified") unless($args -> {"subject"}); @@ -168,7 +168,7 @@ sub _queue_message { my $newh = $self -> {"dbh"} -> prepare("INSERT INTO `".$self -> {"settings"} -> {"database"} -> {"message_queue"}."` (created, creator_id, message_ident, subject, body, format, send_after) VALUES(?, ?, ?, ?, ?, ?, ?)"); - my $result = $newh -> execute($args -> {"now"}, $args -> {"userid"}, $args -> {"ident"}, $args -> {"subject"}, $args -> {"message"}, $format, $args -> {"send_after"}); + my $result = $newh -> execute($args -> {"now"}, $args -> {"userid"}, $args -> {"ident"}, $args -> {"subject"}, $args -> {"message"}, $args -> {"format"}, $args -> {"send_after"}); return $self -> self_error("Unable to perform message insert: ". $self -> {"dbh"} -> errstr) if(!$result); return $self -> self_error("Message insert failed, no rows inserted") if($result eq "0E0");