The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

App::MonM::Notifier::Store - monotifier store class

VERSION

Version 1.01

SYNOPSIS

    use App::MonM::Notifier::Store;

    my $store = new App::MonM::Notifier::Store(
        dsn => "DBI:mysql:database=monotifier;host=mysql.example.com",
        user => "username",
        password => "password",
        set => [
            "RaiseError        0",
            "PrintError        0",
            "mysql_enable_utf8 1",
        ],
    );

    die($store->error) unless $store->status;

DESCRIPTION

This module provides store methods.

    CREATE TABLE IF NOT EXISTS `monotifier` (
      `id` int(11) NOT NULL COMMENT 'ID',
      `to` char(255) DEFAULT NULL COMMENT 'Recipient name',
      `channel` char(255) DEFAULT NULL COMMENT 'Recipient channel',
      `subject` text COMMENT 'Message subject',
      `message` text COMMENT 'Message content',
      `pubdate` int(11) DEFAULT NULL COMMENT 'Date (unixtime) of the publication',
      `expires` int(11) DEFAULT NULL COMMENT 'Date (unixtime) of the expire',
      `status` char(32) DEFAULT NULL COMMENT 'Status of transaction',
      `comment` char(255) DEFAULT NULL COMMENT 'Comment',
      `errcode` int(11) DEFAULT NULL COMMENT 'Error code',
      `errmsg` text COMMENT 'Error message',
      PRIMARY KEY (`id`),
      KEY `I_ID` (`id`)
    ) ENGINE=MyISAM DEFAULT CHARSET=utf8

new

    my $store = new App::MonM::Notifier::Store(
        dsn => "DBI:mysql:database=monotifier;host=mysql.example.com",
        user => "username",
        password => "password",
        set => [
            "RaiseError        0",
            "PrintError        0",
            "mysql_enable_utf8 1",
        ],
    );

Creates DBI object

add

    $store->add(
        to      => $user,
        channel => $ch_name,
        subject => $subject,
        message => $message,
    ) or die($store->error);

Adds new recored

clean

    $store->clean or die($store->error);

Delete incorrect records (that are expired, skipped or failed)

del

    $store->del($id) or die($store->error);

Delete record by id

dsn

    my $dsn = $store->dsn;

Returns DSN string of current database connection

error

    my $error = $store->error;

Returns error message

    my $status = $store->error( "Error message" );

Sets error message if argument is provided. This method in "set" context returns status of the operation as status() method.

get

    my %data = $store->get($id);

Returns data from database by id

getall

    my @table = $store->getall();
    my @table_100 = $store->getall(100);

Returns data from database with limit supporting

getByName

    my %data = $store->getByName($username, $ch_name);

Returns data from database by username and channel name

is_sqlite

    print $store->is_sqlite ? "Is SQLite" : "Is not SQLite"

Returns true if type of current database is SQLite

ping

    $store->ping ? 'OK' : 'Database session is expired';

Checks the connection to database

setError

    $store->setError($id, 102, "Error string")
        or die($store->error);

Sets error code and error message by id. See App::MonM::Notifier::Const

setStatus

    $store->setStatus($id, JOB_EXPIRED, "Comment")
        or die($store->error);

Sets new status by id. See App::MonM::Notifier::Const

status

    my $status = $store->status;
    my $status = $store->status( 1 ); # Sets the status value and returns it

Get/set BOOL status of the operation

truncate

    $store->truncate or die($store->error);

Delete all records

HISTORY

See Changes file

TO DO

See TODO file

BUGS

* none noted

SEE ALSO

CTK::DBI, App::MonM, App::MonM::Notifier

AUTHOR

Serż Minus (Sergey Lepenkov) http://www.serzik.com <abalama@cpan.org>

COPYRIGHT

Copyright (C) 1998-2019 D&D Corporation. All Rights Reserved

LICENSE

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

See LICENSE file and https://dev.perl.org/licenses/