init III
This commit is contained in:
128
Perl OTRS/Kernel/System/CommunicationChannel/Base.pm
Normal file
128
Perl OTRS/Kernel/System/CommunicationChannel/Base.pm
Normal file
@@ -0,0 +1,128 @@
|
||||
# --
|
||||
# Copyright (C) 2001-2019 OTRS AG, https://otrs.com/
|
||||
# --
|
||||
# This software comes with ABSOLUTELY NO WARRANTY. For details, see
|
||||
# the enclosed file COPYING for license information (GPL). If you
|
||||
# did not receive this file, see https://www.gnu.org/licenses/gpl-3.0.txt.
|
||||
# --
|
||||
|
||||
package Kernel::System::CommunicationChannel::Base;
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
|
||||
our $ObjectManagerDisabled = 1;
|
||||
|
||||
=head1 NAME
|
||||
|
||||
Kernel::System::CommunicationChannel::Base - base class for communication channels
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
This is a base class for communication channels and should not be instantiated directly.
|
||||
|
||||
package Kernel::CommunicationChannel::MyChannel;
|
||||
use parent 'Kernel::CommunicationChannel::Base';
|
||||
|
||||
# methods go here
|
||||
|
||||
=cut
|
||||
|
||||
=head1 PUBLIC INTERFACE
|
||||
|
||||
=head2 new()
|
||||
|
||||
Do not instantiate this class, instead use the real communication channel sub classes.
|
||||
Also, don't use the constructor directly, use the ObjectManager instead:
|
||||
|
||||
my $ChannelObject = $Kernel::OM->Get('Kernel::System::CommunicationChannel::MyChannel');
|
||||
|
||||
=cut
|
||||
|
||||
sub new {
|
||||
my ( $Type, %Param ) = @_;
|
||||
|
||||
# Die if someone tries to instantiate the base class.
|
||||
if ( $Type eq __PACKAGE__ ) {
|
||||
die 'Virtual method in base class must not be called.';
|
||||
}
|
||||
|
||||
my $Self = {};
|
||||
bless( $Self, $Type );
|
||||
|
||||
return $Self;
|
||||
}
|
||||
|
||||
=head2 ArticleDataTables()
|
||||
|
||||
Returns list of communication channel article tables for backend data storage. All backends must
|
||||
implement this method.
|
||||
|
||||
my @ArticleDataTables = $ChannelObject->ArticleDataTables();
|
||||
|
||||
@ArticleTables = (
|
||||
'article_data_mime',
|
||||
'article_data_mime_plain',
|
||||
'article_data_mime_attachment',
|
||||
);
|
||||
|
||||
=cut
|
||||
|
||||
sub ArticleDataTables {
|
||||
die 'Virtual method in base class must not be called.';
|
||||
}
|
||||
|
||||
=head2 ArticleDataArticleIDField()
|
||||
|
||||
Returns the name of the field used to link the channel article tables for backend data storage to
|
||||
the main article table.
|
||||
|
||||
my $ArticleIDField = $ChannelObject->ArticleDataArticleIDField();
|
||||
$ArticleIDField = 'article_id';
|
||||
|
||||
=cut
|
||||
|
||||
sub ArticleDataArticleIDField {
|
||||
die 'Virtual method in base class must not be called.';
|
||||
}
|
||||
|
||||
=head2 ArticleBackend()
|
||||
|
||||
Returns communication channel article backend object. Override this method in your class.
|
||||
|
||||
my $ArticleBackend = $ChannelObject->ArticleBackend();
|
||||
|
||||
This method will always return a valid object, so that you can chain-call on the return value like:
|
||||
|
||||
$ChannelObject->ArticleBackend()->ArticleGet(...);
|
||||
|
||||
=cut
|
||||
|
||||
sub ArticleBackend {
|
||||
die 'Virtual method in base class must not be called.';
|
||||
}
|
||||
|
||||
=head2 PackageNameGet()
|
||||
|
||||
Returns name of the package that provides communication channel. Override this method in your class.
|
||||
|
||||
my $PackageName = $ChannelObject->PackageNameGet();
|
||||
$PackageName = 'MyPackage';
|
||||
|
||||
=cut
|
||||
|
||||
sub PackageNameGet {
|
||||
die 'Virtual method in base class must not be called.';
|
||||
}
|
||||
|
||||
1;
|
||||
|
||||
=head1 TERMS AND CONDITIONS
|
||||
|
||||
This software is part of the OTRS project (L<https://otrs.org/>).
|
||||
|
||||
This software comes with ABSOLUTELY NO WARRANTY. For details, see
|
||||
the enclosed file COPYING for license information (GPL). If you
|
||||
did not receive this file, see L<https://www.gnu.org/licenses/gpl-3.0.txt>.
|
||||
|
||||
=cut
|
||||
120
Perl OTRS/Kernel/System/CommunicationChannel/Chat.pm
Normal file
120
Perl OTRS/Kernel/System/CommunicationChannel/Chat.pm
Normal file
@@ -0,0 +1,120 @@
|
||||
# --
|
||||
# Copyright (C) 2001-2019 OTRS AG, https://otrs.com/
|
||||
# --
|
||||
# This software comes with ABSOLUTELY NO WARRANTY. For details, see
|
||||
# the enclosed file COPYING for license information (GPL). If you
|
||||
# did not receive this file, see https://www.gnu.org/licenses/gpl-3.0.txt.
|
||||
# --
|
||||
|
||||
package Kernel::System::CommunicationChannel::Chat;
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
|
||||
use parent 'Kernel::System::CommunicationChannel::Base';
|
||||
|
||||
our @ObjectDependencies = (
|
||||
'Kernel::System::Ticket::Article::Backend::Chat',
|
||||
);
|
||||
|
||||
=head1 NAME
|
||||
|
||||
Kernel::System::CommunicationChannel::Chat - Chat communication channel class
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
This is a class for Chat communication channel.
|
||||
|
||||
=cut
|
||||
|
||||
=head1 PUBLIC INTERFACE
|
||||
|
||||
=head2 new()
|
||||
|
||||
Don't use the constructor directly, use the ObjectManager instead:
|
||||
|
||||
my $ChannelObject = $Kernel::OM->Get('Kernel::System::CommunicationChannel::Chat');
|
||||
|
||||
=cut
|
||||
|
||||
sub new {
|
||||
my ( $Type, %Param ) = @_;
|
||||
|
||||
my $Self = {};
|
||||
bless( $Self, $Type );
|
||||
|
||||
return $Self;
|
||||
}
|
||||
|
||||
=head2 ArticleDataTables()
|
||||
|
||||
Returns list of communication channel article tables for backend data storage.
|
||||
|
||||
my @ArticleDataTables = $ChannelObject->ArticleDataTables();
|
||||
|
||||
@ArticleTables = (
|
||||
'article_data_otrs_chat',
|
||||
);
|
||||
|
||||
=cut
|
||||
|
||||
sub ArticleDataTables {
|
||||
return (
|
||||
'article_data_otrs_chat',
|
||||
);
|
||||
}
|
||||
|
||||
=head2 ArticleDataArticleIDField()
|
||||
|
||||
Returns the name of the field used to link the channel article tables for backend data storage to
|
||||
the main article table.
|
||||
|
||||
my $ArticleIDField = $ChannelObject->ArticleDataArticleIDField();
|
||||
$ArticleIDField = 'article_id';
|
||||
|
||||
=cut
|
||||
|
||||
sub ArticleDataArticleIDField {
|
||||
return 'article_id';
|
||||
}
|
||||
|
||||
=head2 ArticleBackend()
|
||||
|
||||
Returns communication channel article backend object.
|
||||
|
||||
my $ArticleBackend = $ChannelObject->ArticleBackend();
|
||||
|
||||
This method will always return a valid object, so that you can chain-call on the return value like:
|
||||
|
||||
$ChannelObject->ArticleBackend()->ArticleGet(...);
|
||||
|
||||
=cut
|
||||
|
||||
sub ArticleBackend {
|
||||
return $Kernel::OM->Get('Kernel::System::Ticket::Article::Backend::Chat');
|
||||
}
|
||||
|
||||
=head2 PackageNameGet()
|
||||
|
||||
Returns name of the package that provides communication channel.
|
||||
|
||||
my $PackageName = $ChannelObject->PackageNameGet();
|
||||
$PackageName = 'Framework';
|
||||
|
||||
=cut
|
||||
|
||||
sub PackageNameGet {
|
||||
return 'Framework';
|
||||
}
|
||||
|
||||
1;
|
||||
|
||||
=head1 TERMS AND CONDITIONS
|
||||
|
||||
This software is part of the OTRS project (L<https://otrs.org/>).
|
||||
|
||||
This software comes with ABSOLUTELY NO WARRANTY. For details, see
|
||||
the enclosed file COPYING for license information (GPL). If you
|
||||
did not receive this file, see L<https://www.gnu.org/licenses/gpl-3.0.txt>.
|
||||
|
||||
=cut
|
||||
125
Perl OTRS/Kernel/System/CommunicationChannel/Email.pm
Normal file
125
Perl OTRS/Kernel/System/CommunicationChannel/Email.pm
Normal file
@@ -0,0 +1,125 @@
|
||||
# --
|
||||
# Copyright (C) 2001-2019 OTRS AG, https://otrs.com/
|
||||
# --
|
||||
# This software comes with ABSOLUTELY NO WARRANTY. For details, see
|
||||
# the enclosed file COPYING for license information (GPL). If you
|
||||
# did not receive this file, see https://www.gnu.org/licenses/gpl-3.0.txt.
|
||||
# --
|
||||
|
||||
package Kernel::System::CommunicationChannel::Email;
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
|
||||
use parent 'Kernel::System::CommunicationChannel::Base';
|
||||
|
||||
our @ObjectDependencies = (
|
||||
'Kernel::System::Ticket::Article::Backend::Email',
|
||||
);
|
||||
|
||||
=head1 NAME
|
||||
|
||||
Kernel::System::CommunicationChannel::Email - email communication channel class
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
This is a class for email communication channel.
|
||||
|
||||
=cut
|
||||
|
||||
=head1 PUBLIC INTERFACE
|
||||
|
||||
=head2 new()
|
||||
|
||||
Don't use the constructor directly, use the ObjectManager instead:
|
||||
|
||||
my $ChannelObject = $Kernel::OM->Get('Kernel::System::CommunicationChannel::Email');
|
||||
|
||||
=cut
|
||||
|
||||
sub new {
|
||||
my ( $Type, %Param ) = @_;
|
||||
|
||||
my $Self = {};
|
||||
bless( $Self, $Type );
|
||||
|
||||
return $Self;
|
||||
}
|
||||
|
||||
=head2 ArticleDataTables()
|
||||
|
||||
Returns list of communication channel article tables for backend data storage.
|
||||
|
||||
my @ArticleDataTables = $ChannelObject->ArticleDataTables();
|
||||
|
||||
@ArticleTables = (
|
||||
'article_data_mime',
|
||||
'article_data_mime_plain',
|
||||
'article_data_mime_attachment',
|
||||
);
|
||||
|
||||
=cut
|
||||
|
||||
sub ArticleDataTables {
|
||||
return (
|
||||
'article_data_mime',
|
||||
'article_data_mime_plain',
|
||||
'article_data_mime_attachment',
|
||||
'article_data_mime_send_error',
|
||||
);
|
||||
}
|
||||
|
||||
=head2 ArticleDataArticleIDField()
|
||||
|
||||
Returns the name of the field used to link the channel article tables for backend data storage to
|
||||
the main article table.
|
||||
|
||||
my $ArticleIDField = $ChannelObject->ArticleDataArticleIDField();
|
||||
$ArticleIDField = 'article_id';
|
||||
|
||||
=cut
|
||||
|
||||
sub ArticleDataArticleIDField {
|
||||
return 'article_id';
|
||||
}
|
||||
|
||||
=head2 ArticleBackend()
|
||||
|
||||
Returns communication channel article backend object.
|
||||
|
||||
my $ArticleBackend = $ChannelObject->ArticleBackend();
|
||||
|
||||
This method will always return a valid object, so that you can chain-call on the return value like:
|
||||
|
||||
$ChannelObject->ArticleBackend()->ArticleGet(...);
|
||||
|
||||
=cut
|
||||
|
||||
sub ArticleBackend {
|
||||
return $Kernel::OM->Get('Kernel::System::Ticket::Article::Backend::Email');
|
||||
}
|
||||
|
||||
=head2 PackageNameGet()
|
||||
|
||||
Returns name of the package that provides communication channel.
|
||||
|
||||
my $PackageName = $ChannelObject->PackageNameGet();
|
||||
$PackageName = 'Framework';
|
||||
|
||||
=cut
|
||||
|
||||
sub PackageNameGet {
|
||||
return 'Framework';
|
||||
}
|
||||
|
||||
1;
|
||||
|
||||
=head1 TERMS AND CONDITIONS
|
||||
|
||||
This software is part of the OTRS project (L<https://otrs.org/>).
|
||||
|
||||
This software comes with ABSOLUTELY NO WARRANTY. For details, see
|
||||
the enclosed file COPYING for license information (GPL). If you
|
||||
did not receive this file, see L<https://www.gnu.org/licenses/gpl-3.0.txt>.
|
||||
|
||||
=cut
|
||||
125
Perl OTRS/Kernel/System/CommunicationChannel/Internal.pm
Normal file
125
Perl OTRS/Kernel/System/CommunicationChannel/Internal.pm
Normal file
@@ -0,0 +1,125 @@
|
||||
# --
|
||||
# Copyright (C) 2001-2019 OTRS AG, https://otrs.com/
|
||||
# --
|
||||
# This software comes with ABSOLUTELY NO WARRANTY. For details, see
|
||||
# the enclosed file COPYING for license information (GPL). If you
|
||||
# did not receive this file, see https://www.gnu.org/licenses/gpl-3.0.txt.
|
||||
# --
|
||||
|
||||
package Kernel::System::CommunicationChannel::Internal;
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
|
||||
use parent 'Kernel::System::CommunicationChannel::Base';
|
||||
|
||||
our @ObjectDependencies = (
|
||||
'Kernel::System::Ticket::Article::Backend::Internal',
|
||||
);
|
||||
|
||||
=head1 NAME
|
||||
|
||||
Kernel::System::CommunicationChannel::Internal - internal communication channel class
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
This is a class for internal communication channel.
|
||||
|
||||
=cut
|
||||
|
||||
=head1 PUBLIC INTERFACE
|
||||
|
||||
=head2 new()
|
||||
|
||||
Don't use the constructor directly, use the ObjectManager instead:
|
||||
|
||||
my $ChannelObject = $Kernel::OM->Get('Kernel::System::CommunicationChannel::Phone');
|
||||
|
||||
=cut
|
||||
|
||||
sub new {
|
||||
my ( $Type, %Param ) = @_;
|
||||
|
||||
my $Self = {};
|
||||
bless( $Self, $Type );
|
||||
|
||||
return $Self;
|
||||
}
|
||||
|
||||
=head2 ArticleDataTables()
|
||||
|
||||
Returns list of communication channel article tables for backend data storage.
|
||||
|
||||
my @ArticleDataTables = $ChannelObject->ArticleDataTables();
|
||||
|
||||
@ArticleTables = (
|
||||
'article_data_mime',
|
||||
'article_data_mime_plain',
|
||||
'article_data_mime_attachment',
|
||||
);
|
||||
|
||||
=cut
|
||||
|
||||
sub ArticleDataTables {
|
||||
return (
|
||||
'article_data_mime',
|
||||
'article_data_mime_plain',
|
||||
'article_data_mime_attachment',
|
||||
'article_data_mime_send_error',
|
||||
);
|
||||
}
|
||||
|
||||
=head2 ArticleDataArticleIDField()
|
||||
|
||||
Returns the name of the field used to link the channel article tables for backend data storage to
|
||||
the main article table.
|
||||
|
||||
my $ArticleIDField = $ChannelObject->ArticleDataArticleIDField();
|
||||
$ArticleIDField = 'article_id';
|
||||
|
||||
=cut
|
||||
|
||||
sub ArticleDataArticleIDField {
|
||||
return 'article_id';
|
||||
}
|
||||
|
||||
=head2 ArticleBackend()
|
||||
|
||||
Returns communication channel article backend object.
|
||||
|
||||
my $ArticleBackend = $ChannelObject->ArticleBackend();
|
||||
|
||||
This method will always return a valid object, so that you can chain-call on the return value like:
|
||||
|
||||
$ChannelObject->ArticleBackend()->ArticleGet(...);
|
||||
|
||||
=cut
|
||||
|
||||
sub ArticleBackend {
|
||||
return $Kernel::OM->Get('Kernel::System::Ticket::Article::Backend::Internal');
|
||||
}
|
||||
|
||||
=head2 PackageNameGet()
|
||||
|
||||
Returns name of the package that provides communication channel.
|
||||
|
||||
my $PackageName = $ChannelObject->PackageNameGet();
|
||||
$PackageName = 'Framework';
|
||||
|
||||
=cut
|
||||
|
||||
sub PackageNameGet {
|
||||
return 'Framework';
|
||||
}
|
||||
|
||||
1;
|
||||
|
||||
=head1 TERMS AND CONDITIONS
|
||||
|
||||
This software is part of the OTRS project (L<https://otrs.org/>).
|
||||
|
||||
This software comes with ABSOLUTELY NO WARRANTY. For details, see
|
||||
the enclosed file COPYING for license information (GPL). If you
|
||||
did not receive this file, see L<https://www.gnu.org/licenses/gpl-3.0.txt>.
|
||||
|
||||
=cut
|
||||
125
Perl OTRS/Kernel/System/CommunicationChannel/Phone.pm
Normal file
125
Perl OTRS/Kernel/System/CommunicationChannel/Phone.pm
Normal file
@@ -0,0 +1,125 @@
|
||||
# --
|
||||
# Copyright (C) 2001-2019 OTRS AG, https://otrs.com/
|
||||
# --
|
||||
# This software comes with ABSOLUTELY NO WARRANTY. For details, see
|
||||
# the enclosed file COPYING for license information (GPL). If you
|
||||
# did not receive this file, see https://www.gnu.org/licenses/gpl-3.0.txt.
|
||||
# --
|
||||
|
||||
package Kernel::System::CommunicationChannel::Phone;
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
|
||||
use parent 'Kernel::System::CommunicationChannel::Base';
|
||||
|
||||
our @ObjectDependencies = (
|
||||
'Kernel::System::Ticket::Article::Backend::Phone',
|
||||
);
|
||||
|
||||
=head1 NAME
|
||||
|
||||
Kernel::System::CommunicationChannel::Phone - phone communication channel class
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
This is a class for phone communication channel.
|
||||
|
||||
=cut
|
||||
|
||||
=head1 PUBLIC INTERFACE
|
||||
|
||||
=head2 new()
|
||||
|
||||
Don't use the constructor directly, use the ObjectManager instead:
|
||||
|
||||
my $ChannelObject = $Kernel::OM->Get('Kernel::System::CommunicationChannel::Phone');
|
||||
|
||||
=cut
|
||||
|
||||
sub new {
|
||||
my ( $Type, %Param ) = @_;
|
||||
|
||||
my $Self = {};
|
||||
bless( $Self, $Type );
|
||||
|
||||
return $Self;
|
||||
}
|
||||
|
||||
=head2 ArticleDataTables()
|
||||
|
||||
Returns list of communication channel article tables for backend data storage.
|
||||
|
||||
my @ArticleDataTables = $ChannelObject->ArticleDataTables();
|
||||
|
||||
@ArticleTables = (
|
||||
'article_data_mime',
|
||||
'article_data_mime_plain',
|
||||
'article_data_mime_attachment',
|
||||
);
|
||||
|
||||
=cut
|
||||
|
||||
sub ArticleDataTables {
|
||||
return (
|
||||
'article_data_mime',
|
||||
'article_data_mime_plain',
|
||||
'article_data_mime_attachment',
|
||||
'article_data_mime_send_error',
|
||||
);
|
||||
}
|
||||
|
||||
=head2 ArticleDataArticleIDField()
|
||||
|
||||
Returns the name of the field used to link the channel article tables for backend data storage to
|
||||
the main article table.
|
||||
|
||||
my $ArticleIDField = $ChannelObject->ArticleDataArticleIDField();
|
||||
$ArticleIDField = 'article_id';
|
||||
|
||||
=cut
|
||||
|
||||
sub ArticleDataArticleIDField {
|
||||
return 'article_id';
|
||||
}
|
||||
|
||||
=head2 ArticleBackend()
|
||||
|
||||
Returns communication channel article backend object.
|
||||
|
||||
my $ArticleBackend = $ChannelObject->ArticleBackend();
|
||||
|
||||
This method will always return a valid object, so that you can chain-call on the return value like:
|
||||
|
||||
$ChannelObject->ArticleBackend()->ArticleGet(...);
|
||||
|
||||
=cut
|
||||
|
||||
sub ArticleBackend {
|
||||
return $Kernel::OM->Get('Kernel::System::Ticket::Article::Backend::Phone');
|
||||
}
|
||||
|
||||
=head2 PackageNameGet()
|
||||
|
||||
Returns name of the package that provides communication channel.
|
||||
|
||||
my $PackageName = $ChannelObject->PackageNameGet();
|
||||
$PackageName = 'Framework';
|
||||
|
||||
=cut
|
||||
|
||||
sub PackageNameGet {
|
||||
return 'Framework';
|
||||
}
|
||||
|
||||
1;
|
||||
|
||||
=head1 TERMS AND CONDITIONS
|
||||
|
||||
This software is part of the OTRS project (L<https://otrs.org/>).
|
||||
|
||||
This software comes with ABSOLUTELY NO WARRANTY. For details, see
|
||||
the enclosed file COPYING for license information (GPL). If you
|
||||
did not receive this file, see L<https://www.gnu.org/licenses/gpl-3.0.txt>.
|
||||
|
||||
=cut
|
||||
Reference in New Issue
Block a user