Add base classes for mailing instances.
This commit is contained in:
parent
63798b98f1
commit
6aa9df2170
3 changed files with 119 additions and 2 deletions
47
lib/WebGUI/Mailing.pm
Normal file
47
lib/WebGUI/Mailing.pm
Normal file
|
|
@ -0,0 +1,47 @@
|
|||
package WebGUI::Mailing;
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
|
||||
use base 'WebGUI::Crud';
|
||||
|
||||
sub crud_definition {
|
||||
my $class = shift;
|
||||
my $session = shift;
|
||||
|
||||
my $definition = $class->SUPER::crud_definition( $session );
|
||||
|
||||
$definition->{ tableName } = 'WGMailing';
|
||||
$definition->{ tableKey } = 'mailingId';
|
||||
$definition->{ sequenceKey } = 'issueId';
|
||||
|
||||
my %properties = (
|
||||
assetId => {
|
||||
fieldType => 'guid',
|
||||
},
|
||||
|
||||
issueId => {
|
||||
fieldType => 'guid',
|
||||
},
|
||||
configuration => {
|
||||
fieldType => 'textarea',
|
||||
},
|
||||
sendDate => {
|
||||
fieldType => 'dateTime',
|
||||
},
|
||||
active => {
|
||||
fieldType => 'yesNo',
|
||||
defaultValue => 0,
|
||||
},
|
||||
);
|
||||
|
||||
$definition->{ properties } = {
|
||||
%{ $definition->{ properties } || {} },
|
||||
%properties,
|
||||
};
|
||||
|
||||
return $definition;
|
||||
}
|
||||
|
||||
1;
|
||||
|
||||
52
lib/WebGUI/Mailing/Email.pm
Normal file
52
lib/WebGUI/Mailing/Email.pm
Normal file
|
|
@ -0,0 +1,52 @@
|
|||
package WebGUI::Mailing::Email;
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
|
||||
use base 'WebGUI::Crud';
|
||||
|
||||
sub crud_definition {
|
||||
my $class = shift;
|
||||
my $session = shift;
|
||||
|
||||
my $definition = $class->SUPER::crud_definition( $session );
|
||||
|
||||
$definition->{ tableName } = 'WGMailing_queue';
|
||||
$definition->{ tableKey } = 'mailId';
|
||||
$definition->{ sequenceKey } = 'mailingId';
|
||||
|
||||
my %properties = (
|
||||
mailingId => {
|
||||
fieldType => 'guid',
|
||||
},
|
||||
userId => {
|
||||
fieldType => 'guid',
|
||||
},
|
||||
recipientEmail => {
|
||||
fieldType => 'email',
|
||||
defaultValue => undef,
|
||||
},
|
||||
status => {
|
||||
fieldType => 'text',
|
||||
defaultValue => 'queued', # Allowed are: 'queued', 'sent', 'error'
|
||||
},
|
||||
errorMessage => {
|
||||
fieldType => 'text',
|
||||
defaultValue => undef,
|
||||
},
|
||||
isTest => {
|
||||
fieldType => 'yesNo',
|
||||
defaultValue => 1, # For safety: explicitly turn this off to send real emails
|
||||
},
|
||||
);
|
||||
|
||||
$definition->{ properties } = {
|
||||
%{ $definition->{ properties } || {} },
|
||||
%properties,
|
||||
};
|
||||
|
||||
return $definition;
|
||||
}
|
||||
|
||||
1;
|
||||
|
||||
|
|
@ -22,6 +22,7 @@ my $session = start( $webguiRoot, $configFile );
|
|||
|
||||
installMailableAspectTable( $session );
|
||||
installNewsletterCollection( $session );
|
||||
installMailingTables( $session );
|
||||
|
||||
finish($session);
|
||||
|
||||
|
|
@ -32,8 +33,9 @@ sub installMailableAspectTable {
|
|||
|
||||
$session->db->write(<<EOSQL);
|
||||
create table if not exists assetAspectMailable (
|
||||
assetId char(22) binary not null,
|
||||
revisionDate bigint(20) not null,
|
||||
assetId char(22) binary not null,
|
||||
revisionDate bigint(20) not null,
|
||||
mailStyleTemplateId char(22) binary not null,
|
||||
primary key( assetId, revisionDate )
|
||||
);
|
||||
EOSQL
|
||||
|
|
@ -64,6 +66,22 @@ EOSQL2
|
|||
|
||||
print "Done.\n";
|
||||
}
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
sub installMailingTables {
|
||||
my $session = shift;
|
||||
print "\tInstalling Mailing table...";
|
||||
|
||||
use WebGUI::Mailing;
|
||||
use WebGUI::Mailing::Email;
|
||||
|
||||
WebGUI::Mailing->crud_createOrUpdateTable( $session );
|
||||
WebGUI::Mailing::Email->crud_createOrUpdateTable( $session );
|
||||
|
||||
print "Done\n";
|
||||
}
|
||||
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
sub start {
|
||||
my $webguiRoot = shift;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue