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 );
|
installMailableAspectTable( $session );
|
||||||
installNewsletterCollection( $session );
|
installNewsletterCollection( $session );
|
||||||
|
installMailingTables( $session );
|
||||||
|
|
||||||
finish($session);
|
finish($session);
|
||||||
|
|
||||||
|
|
@ -32,8 +33,9 @@ sub installMailableAspectTable {
|
||||||
|
|
||||||
$session->db->write(<<EOSQL);
|
$session->db->write(<<EOSQL);
|
||||||
create table if not exists assetAspectMailable (
|
create table if not exists assetAspectMailable (
|
||||||
assetId char(22) binary not null,
|
assetId char(22) binary not null,
|
||||||
revisionDate bigint(20) not null,
|
revisionDate bigint(20) not null,
|
||||||
|
mailStyleTemplateId char(22) binary not null,
|
||||||
primary key( assetId, revisionDate )
|
primary key( assetId, revisionDate )
|
||||||
);
|
);
|
||||||
EOSQL
|
EOSQL
|
||||||
|
|
@ -64,6 +66,22 @@ EOSQL2
|
||||||
|
|
||||||
print "Done.\n";
|
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 {
|
sub start {
|
||||||
my $webguiRoot = shift;
|
my $webguiRoot = shift;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue