TT#55104 fix sound files update_model error handling

* API SoundFiles transcoding error is now handled
      correctly
    * Fix cases in Role/API/SoundFiles that used
      last instead of return

Change-Id: I2636d654b3b405645761dda834c8215514bf50e2
changes/43/28043/2
Kirill Solomko 7 years ago
parent c397042448
commit 82e3ce898b

@ -35,7 +35,7 @@ sub _item_rs {
my ($self, $c) = @_;
my $item_rs = $c->model('DB')->resultset('voip_sound_files')->search(
{},
{},
{
prefetch => ['handle', 'set'],
});
@ -131,8 +131,7 @@ sub update_item {
$resource->{loopplay} = ($resource->{loopplay} eq "true" || is_int($resource->{loopplay}) && $resource->{loopplay}) ? 1 : 0;
my $set_rs = $c->model('DB')->resultset('voip_sound_sets')->search({
my $set_rs = $c->model('DB')->resultset('voip_sound_sets')->search({
id => $resource->{set_id},
});
if($c->user->roles eq "admin") {
@ -145,11 +144,11 @@ sub update_item {
unless($set) {
$c->log->error("invalid set_id '$$resource{set_id}'");
$self->error($c, HTTP_UNPROCESSABLE_ENTITY, "Sound set does not exist");
last;
return;
}
my $handle_rs = $c->model('DB')->resultset('voip_sound_handles')->search({
'me.name' => $resource->{handle},
'me.name' => $resource->{handle},
});
my $handle;
if($set->contract_id) {
@ -186,13 +185,17 @@ sub update_item {
} catch ($e) {
$c->log->error("Failed to clear audio cache for " . $group_name . " at appserver",);
$self->error($c, HTTP_UNPROCESSABLE_ENTITY, 'Failed to clear audio cache.');
last;
return;
}
$resource->{codec} = 'WAV';
$resource->{data} = $recording;
$resource = $self->transcode_data($c, 'WAV', $resource);
last unless($resource);
unless ($resource) {
$c->log->error("Failed to transcode sound file",);
$self->error($c, HTTP_UNPROCESSABLE_ENTITY, 'Failed to transcode sound file');
return;
}
delete $resource->{handle};
try {

Loading…
Cancel
Save