perl - 管理 HTTP 错误的模块
问题描述
我正在编写一个 Perl 模块Result
来管理 HTTP 错误。
我有点迷失了生成管理这一切的功能。
结果.pm
package Result;
use strict;
use warnings;
use Data::Dumper;
use Log::Log4perl;
sub new
{
my $class = shift;
my %params = @_;
my $self = {
code => $params{'code'},
value => $params{'value'}
};
bless $self, $class;
return $self;
}
sub generateError
{
my $self = shift;
my %params = @_;
if($self->{'code'} == 200)
{
return "Your request was well executed !";
}
elsif($self->{'code'} == 400)
{
return "There is an error in your request! Please verify it!";
}
elsif($self->{'code'} == 404)
{
return "We did not find for what you ask !"
}
elsif($self->{'code'} == 500)
{
return "Internal error of the server, please re-try later !";
}
elsif($self->{'code'} == 504)
{
return "Your request has set of time to be executed, please retry !";
}
}
1;
应用程序.pm
sub template
{
my $self = shift;
my $query = $self->query;
my $id = $query->param('id');
my $session = $self->param('session');
my $profile = $session->param('profile');
my $Project = Project->newFromId($id);
if(!$Project or $Project eq 'NOT_FOUND')
{
return $self->redirect('?rm=notfound');
}
if(!$profile->{'uid'} or $Project->{'userId'} != $profile->{'uid'})
{
return $self->redirect('?rm=notfound');
}
my $mailContent = from_json($Project->{'mail'});
my $templateContent = formatTemplate($Project->{'template'});
my $infos = [
{
'ID' => $id,
'TEMPLATE' => $templateContent,
'MAILSUBJECT' => $mailContent->{'subject'},
'MAILBODY' => $mailContent->{'body'}
}
];
if($mailContent->{'type'} eq 'text')
{
$infos->[0]{'MAILTEXT'} = 1;
}
else
{
$infos->[0]{'MAILHTML'} = 1;
}
return $self->processtmpl('template.tmpl', $infos);
}
1;
解决方案
推荐阅读
- python - 查询中的 django-cte 前导零
- laravel - Homestead 和 NGINX 错误:emerg] “proxy_set_header”中的参数数量无效
- flutter - 如何将图片从我的 Flutter 应用程序发送到 Flask 服务器实例?
- javascript - 如何仅过滤数组中的 1 个匹配元素
- python-3.x - (很可能是由于循环导入)如何在 tkinter 中的多个页面之间切换?
- encryption - 关于 Cipher 加密后的数据长度
- python - 是什么导致 Python 中的 SQL 速度变慢?
- email - 后缀为所有外部传入电子邮件添加警告消息
- javascript - 我可以注册但不能更进一步
- php - 在 woocommerce 中获取价格的功能面临裁员