65 lines
1.7 KiB
65 lines
1.7 KiB
package NGCP::Panel::Utils::API::Subscribers;
|
|
use strict;
|
|
use warnings;
|
|
|
|
use HTTP::Status qw(:constants);
|
|
|
|
sub get_active_subscriber{
|
|
my($api, $c, $id, $params) = @_;
|
|
|
|
my $sub_rs = $c->model('DB')->resultset('voip_subscribers')->search({
|
|
'me.id' => $id,
|
|
'me.status' => { '!=' => 'terminated' },
|
|
});
|
|
if($c->user->roles eq "admin") {
|
|
} elsif($c->user->roles eq "reseller") {
|
|
$sub_rs = $sub_rs->search({
|
|
'contact.reseller_id' => $c->user->reseller_id,
|
|
},{
|
|
join => { contract => 'contact' },
|
|
});
|
|
} elsif($c->user->roles eq "subscriberadmin") {
|
|
$sub_rs = $sub_rs->search({
|
|
'me.contract_id' => $c->user->account_id,
|
|
});
|
|
} elsif($c->user->roles eq "subscriber") {
|
|
$sub_rs = $sub_rs->search({
|
|
'me.uuid' => $c->user->uuid,
|
|
});
|
|
}
|
|
my $sub = $sub_rs->first;
|
|
unless($sub && $sub->provisioning_voip_subscriber) {
|
|
$c->log->error($params->{error_log} ? $params->{error_log} : "invalid subscriber_id '$id'"); # TODO: user, message, trace, ...
|
|
$api->error($c, HTTP_UNPROCESSABLE_ENTITY, $params->{error} ? $params->{error} : "No subscriber for subscriber_id found");
|
|
return;
|
|
}
|
|
return $sub;
|
|
}
|
|
1;
|
|
|
|
=head1 NAME
|
|
|
|
NGCP::Panel::Utils::API::Subscribers
|
|
|
|
=head1 DESCRIPTION
|
|
|
|
A temporary helper to manipulate subscribers related data in REST API modules
|
|
|
|
=head1 METHODS
|
|
|
|
=head2 get_active_subscriber
|
|
|
|
Get subscriber NGCP::Schema::Result object of the active subscriber by the mandatory form parameter subscriber_id.
|
|
|
|
=head1 AUTHOR
|
|
|
|
Irina Peshinskaya
|
|
|
|
=head1 LICENSE
|
|
|
|
This library is free software. You can redistribute it and/or modify
|
|
it under the same terms as Perl itself.
|
|
|
|
=cut
|
|
# vim: set tabstop=4 expandtab:
|