diff --git a/lib/NGCP/Panel/Controller/API/SubscriberRegistrations.pm b/lib/NGCP/Panel/Controller/API/SubscriberRegistrations.pm index 98787f7217..0418a8013a 100644 --- a/lib/NGCP/Panel/Controller/API/SubscriberRegistrations.pm +++ b/lib/NGCP/Panel/Controller/API/SubscriberRegistrations.pm @@ -139,7 +139,7 @@ sub POST :Allow { my ($guard, $txn_ok) = ($c->model('DB')->txn_scope_guard, 0); { - $self->update_item($c, undef, undef, $resource, $form, $create); + last unless $self->update_item($c, "new", undef, $resource, $form, $create); $guard->commit; $txn_ok = 1; diff --git a/lib/NGCP/Panel/Role/API/SubscriberRegistrations.pm b/lib/NGCP/Panel/Role/API/SubscriberRegistrations.pm index bd253f2133..9b2b65771d 100644 --- a/lib/NGCP/Panel/Role/API/SubscriberRegistrations.pm +++ b/lib/NGCP/Panel/Role/API/SubscriberRegistrations.pm @@ -187,8 +187,11 @@ sub update_item { ); my $sub = $self->subscriber_from_id($c, $resource->{subscriber_id}); - return unless $sub; - unless($create) { + unless ($sub) { + $self->error($c, HTTP_UNPROCESSABLE_ENTITY, "Could not find a subscriber with the provided subscriber_id"); + return; + } + if ($item && ref $item && !$create) { $self->delete_item($c, $item); } my $cflags = 0; @@ -211,10 +214,16 @@ sub update_item { sub fetch_item { my ($self, $c, $resource, $form, $old_item) = @_; - return unless $form; + unless ($form) { + $self->error($c, HTTP_UNPROCESSABLE_ENTITY, "Missing data values"); + return; + } my $sub = $self->subscriber_from_id($c, $resource->{subscriber_id}); - return unless $sub; + unless ($sub) { + $self->error($c, HTTP_UNPROCESSABLE_ENTITY, "Could not find a subscriber with the provided subscriber_id"); + return; + } my $item; my $flush_timeout = 30;