Bug 9530: Adding a new Koha::Email module
authorChris Cormack <chrisc@catalyst.net.nz>
Mon, 11 Aug 2014 21:53:44 +0000 (09:53 +1200)
committerTomas Cohen Arazi <tomascohen@gmail.com>
Mon, 27 Oct 2014 13:38:14 +0000 (10:38 -0300)
To test

1/ Apply patch
2/ run t/Koha_Email.t

No changes to behaviour have been implemented yet

Signed-off-by: Owen Leonard <oleonard@myacpl.org>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@gmail.com>

Koha/Email.pm [new file with mode: 0644]
t/Koha_Email.t [new file with mode: 0755]

diff --git a/Koha/Email.pm b/Koha/Email.pm
new file mode 100644 (file)
index 0000000..fc392a3
--- /dev/null
@@ -0,0 +1,65 @@
+# Copyright 2014 Catalyst
+#
+# This file is part of Koha.
+#
+# Koha is free software; you can redistribute it and/or modify it under the
+# terms of the GNU General Public License as published by the Free Software
+# Foundation; either version 3 of the License, or (at your option) any later
+# version.
+#
+# Koha is distributed in the hope that it will be useful, but WITHOUT ANY
+# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+# A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License along
+# with Koha; if not, write to the Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+package Koha::Email;
+
+use Modern::Perl;
+
+use base qw(Class::Accessor);
+use C4::Context;
+
+__PACKAGE__->mk_accessors(qw( ));
+
+=head1 NAME
+
+Koha::Email
+
+=head1 SYNOPSIS
+
+  use Koha::Email;
+  my $email = Koha::Email->new();
+  my %mail = $email->create_message_headers({ to => $to_address, from => $from_address,
+                                             replyto => $replyto });
+
+=head1 FUNCTIONS
+
+=cut
+
+sub create_message_headers {
+    my $self   = shift;
+    my $params = shift;
+    $params->{from} ||= C4::Context->preference('KohaAdminEmailAddress');
+    $params->{charset} ||= 'utf8';
+    my %mail = (
+        To      => $params->{to},
+        From    => $params->{from},
+        charset => $params->{charset}
+    );
+    if ( C4::Context->preference('ReplytoDefault') ) {
+        $params->{replyto} ||= C4::Context->preference('ReplytoDefault');
+    }
+    if ( C4::Context->preference('ReturnpathDefault') ) {
+        $params->{sender} ||= C4::Context->preference('ReturnpathDefault');
+    }
+    $mail{'Reply-to'}     = $params->{replyto}     if $params->{replyto};
+    $mail{'Sender'}       = $params->{sender}      if $params->{sender};
+    $mail{'Message'}      = $params->{message}     if $params->{message};
+    $mail{'Subject'}      = $params->{subject}     if $params->{subject};
+    $mail{'Content-Type'} = $params->{contenttype} if $params->{contenttype};
+    return %mail;
+}
+1;
diff --git a/t/Koha_Email.t b/t/Koha_Email.t
new file mode 100755 (executable)
index 0000000..764f5c1
--- /dev/null
@@ -0,0 +1,11 @@
+use Modern::Perl;
+
+use Test::More tests => 4;                      # last test to print
+
+use_ok('Koha::Email');
+
+my $from = 'chrisc@catalyst.net.nz';
+
+ok( my $email = Koha::Email->new(), 'Create a Koha::Email Object');
+ok( my %mail = $email->create_message_headers({from => $from}),'Set headers');
+is ($mail{'From'}, $from, 'Set correctly');