Solstice::SystemMessage - Models a message set by administrators to show all users.


Solstice documentation Contained in the Solstice distribution.

Index


Code Index:

NAME

Top

Solstice::SystemMessage - Models a message set by administrators to show all users.

SYNOPSIS

Top

  use Solstice::SystemMessage;

  my $model = Solstice::SystemMessage->new();

DESCRIPTION

Top

Represents a system message =cut

Export

None by default.

Methods

new()

Constructor.

AUTHOR

Top

Catalyst Group, <catalyst@u.washington.edu>

VERSION

Top

$Revision: 110 $

COPYRIGHT

Top


Solstice documentation Contained in the Solstice distribution.
package Solstice::SystemMessage;

# $Id: generated_model.tmpl 110 2005-09-02 16:28:22Z mcrawfor $

use 5.006_000;
use strict;
use warnings;

use base qw(Solstice::Model);

use Solstice::DateTime;
use Solstice::Database;
use Solstice::Configure;

our ($VERSION) = ('$Revision: 110 $' =~ /^\$Revision:\s*([\d.]*)/);

sub new {
    my $obj = shift;
    my $id = shift;

    my $self = $obj->SUPER::new(@_);

    $self->_init($id) if $id;

    return $self;
}

sub _init {
    my ($self, $id) = @_;

    my $db = Solstice::Database->new();
    my $config = Solstice::Configure->new();
    my $solstice_db = $config->getDBName();

    $db->readQuery('SELECT 
                system_message_id, show_on_all_tools, start_date, end_date, message 
                FROM '.$solstice_db.'.SystemMessage 
                WHERE system_message_id = ?', $id);

    my $data = $db->fetchRow();

    $self->_setID($data->{'system_message_id'});
    $self->setShowOnAllTools($data->{'show_on_all_tools'}); 
    $self->setStartDate(Solstice::DateTime->new($data->{'start_date'})); 
    $self->setEndDate(Solstice::DateTime->new($data->{'end_date'}));
    $self->setMessage($data->{'message'});
}

sub store {
    my $self = shift;
    my $db = Solstice::Database->new();

    my $config = Solstice::Configure->new();
    my $solstice_db = $config->getDBName();
    
    my $test_id;
    if (defined $self->getID()){
        $db->readQuery('SELECT system_message_id 
                FROM '.$solstice_db.'.SystemMessage
                WHERE system_message_id = ?', $self->getID());
        my $data = $db->fetchRow();
        $test_id = $data->{'system_message_id'};
    }

    if(defined $test_id){
        $db->writeQuery('UPDATE '.$solstice_db.'.SystemMessage
                SET show_on_all_tools = ?,
                start_date = ?,
                end_date = ?,
                message = ?
                WHERE system_message_id = ?', 
        $self->getShowOnAllTools(), $self->getStartDate()->toSQL(), $self->getEndDate()->toSQL(), $self->getMessage(), $self->getID());
    }else{
        $db->writeQuery('INSERT INTO '.$solstice_db.'.SystemMessage
                (show_on_all_tools, start_date, end_date, message)
                VALUES 
                (?, ?, ?, ?)', 
        $self->getShowOnAllTools(), $self->getStartDate()->toSQL(), $self->getEndDate()->toSQL(), $self->getMessage());

        my $id = $db->getLastInsertID();

        $self->_setID($id);

    }
}

sub delete {
    my $self = shift;

    my $db = Solstice::Database->new();
    return unless $self->getID();

    my $config = Solstice::Configure->new();
    my $solstice_db = $config->getDBName();

    $db->writeQuery('DELETE FROM '.$solstice_db.'.SystemMessage WHERE system_message_id = ?', $self->getID());
}

sub _getAccessorDefinition {
    return [
    {
        name  => 'ShowOnAllTools',
        key   => '_show_on_tools',
        type  => 'Boolean',
    },
    {
        name        => 'StartDate',
        key         => '_start_date',
        type        => 'Solstice::DateTime',
    },
    {
        name        => 'EndDate',
        key         => '_end_date',
        type        => 'Solstice::DateTime',
    },
    {       name        => 'Message',
        key         => '_message',
        type        => 'String',
    },
    ];
}



1;

__END__