Files
scripts/Perl OTRS/Kernel/cpan-lib/Sisimai/Order/JSON.pm
2024-10-14 00:08:40 +02:00

79 lines
1.7 KiB
Perl

package Sisimai::Order::JSON;
use parent 'Sisimai::Order';
use feature ':5.10';
use strict;
use warnings;
use Sisimai::Bite::JSON;
my $DefaultOrder = __PACKAGE__->default;
my $PatternTable = {
'keyname' => { 'notificationType' => ['Sisimai::Bite::JSON::AmazonSES'] }
};
sub default {
# Make default order of MTA modules to be loaded
# @return [Array] Default order list of MTA modules
# @since v4.13.1
my $class = shift;
my $order = [];
return $DefaultOrder if ref $DefaultOrder eq 'ARRAY';
push @$order, map { 'Sisimai::Bite::JSON::'.$_ } @{ Sisimai::Bite::JSON->index() };
return $order;
}
sub by {
# Get regular expression patterns for specified key name
# @param [String] group Group name for "ORDER BY"
# @return [Hash] Pattern table for the group
# @since v4.13.2
my $class = shift;
my $group = shift || return undef;
return $PatternTable->{ $group } if exists $PatternTable->{ $group };
return {};
}
1;
__END__
=encoding utf-8
=head1 NAME
Sisimai::Order::JSON - Make optimized order list for calling MTA modules
=head1 SYNOPSIS
use Sisimai::Order::JSON
=head1 DESCRIPTION
Sisimai::Order::JSON makes optimized order list which include MTA modules to be
loaded on first from bounce object key names in the decoded JSON object. This
module are called from only Sisimai::Message::JSON.
=head1 CLASS METHODS
=head2 C<B<default()>>
C<default()> returns default order of MTA modules
print for @{ Sisimai::Order::JSON->default };
=head1 AUTHOR
azumakuniyuki
=head1 COPYRIGHT
Copyright (C) 2016-2018 azumakuniyuki, All rights reserved.
=head1 LICENSE
This software is distributed under The BSD 2-Clause License.
=cut