You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
ngcp-panel/lib/NGCP/Panel/Role/API/Invoices.pm

59 lines
1.2 KiB

package NGCP::Panel::Role::API::Invoices;
use parent qw/NGCP::Panel::Role::API/;
use Sipwise::Base;
use NGCP::Panel::Utils::Generic qw(:all);
use HTTP::Status qw(:constants);
sub item_name{
return 'invoice';
}
sub resource_name{
return 'invoices';
}
sub dispatch_path{
return '/api/invoices/';
}
sub relation{
return 'http://purl.org/sipwise/ngcp-api/#rel-invoices';
}
sub config_allowed_roles {
return [qw/admin reseller/];
}
sub _item_rs {
my ($self, $c) = @_;
my $item_rs = $c->model('DB')->resultset('invoices');
if($c->user->roles eq "admin") {
} elsif($c->user->roles eq "reseller") {
$item_rs = $item_rs->search({
'contact.reseller_id' => $c->user->reseller_id
},{
join => { contract => 'contact' },
});
}
return $item_rs;
}
sub get_form {
my ($self, $c) = @_;
return (NGCP::Panel::Form::get("NGCP::Panel::Form::Invoice::InvoiceAPI", $c));
}
sub hal_links {
my($self, $c, $item, $resource, $form) = @_;
return [
Data::HAL::Link->new(relation => 'ngcp:customers', href => sprintf("/api/customers/%d", $item->contract_id)),
];
}
1;
# vim: set tabstop=4 expandtab: