package Portal::Api::user::News;
=head1 NAME
User Portal
# Рекомендуем в подах записывать к каким
# группам эндпойнтов относится данный контроллер
Endpoints:
/user/portal/news*
/user/portal/menu
=cut
use strict;
use warnings FATAL => 'all';
use Control::Errors;
# Импортируем объект Portal для работы с базой
# он должен находиться в /usr/abills/Abills/mysql/Portal.pm
use Portal;
my Portal $Portal;
my Control::Errors $Errors;
#**********************************************************
=head2 new($db, $admin, $conf)
=cut
#**********************************************************
sub new {
my ($class, $db, $admin, $conf, $attr) = @_;
my $self = {
db => $db,
admin => $admin,
conf => $conf,
attr => $attr
};
bless($self, $class);
$Portal = Portal->new($db, $admin, $conf);
# Определяем словарь ошибок, который нам пришёл выше
$Errors = $self->{attr}->{Errors};
return $self;
}
#**********************************************************
=head2 get_user_portal_menu($path_params, $query_params)
Endpoint GET /user/portal/menu
=cut
#**********************************************************
sub get_user_portal_menu {
my $self = shift;
my ($path_params, $query_params) = @_;
# Не обязательно писать всю логику прямо внутри эндпоинта, как в примере с ADMIN API
# Вы можете ссылаться на другую функцию, для сокращения использования.
# Но для простоты понимания, с самого начала лучше писать всё в эндпоинтах
return $self->_portal_menu({
# Если пользователь авторизован - в $path_params->{uid} будет UID пользователя.
UID => $path_params->{uid} || '',
DOMAIN_ID => $query_params->{DOMAIN_ID},
MENU => 1,
});
}
1; |