X-Git-Url: https://git.ktnx.net/?a=blobdiff_plain;f=lib%2FApp%2FLazyShoppingList%2FAPI%2Fv1.pm;fp=lib%2FApp%2FLazyShoppingList%2FAPI%2Fv1.pm;h=c13137a4273acc988a463806276315ff0416ce17;hb=6ef15e84e77bb06afb4e6b95847f90f49d53ab2f;hp=e48146445eb39926ea9148245f6fb06e1097f331;hpb=effa4911c51a82739eaacdf416e48ea2cdab6339;p=lsl.git diff --git a/lib/App/LazyShoppingList/API/v1.pm b/lib/App/LazyShoppingList/API/v1.pm index e481464..c13137a 100644 --- a/lib/App/LazyShoppingList/API/v1.pm +++ b/lib/App/LazyShoppingList/API/v1.pm @@ -274,4 +274,36 @@ del '/list/:list_id' => sub { return \%r; }; +# delete shopping list item +del '/list/:list_id/:item_id' => sub { + my $list_id = route_parameters->get('list_id'); + length($list_id) and $list_id =~ /^\d{1,18}$/ + or return invalid_input('bad list ID'); + + my $item_id = route_parameters->get('item_id'); + length($item_id) and $item_id =~ /^\d{1,18}$/ + or return invalid_input('bad item ID'); + + my $dbh = get_database; + + my %r = ( + lists_version => get_lists_version($dbh), + ); + + my $list = $dbh->resultset('ShoppingList')->find($list_id) + or return exception 404, 'No such list'; + + my $item = $dbh->resultset('ShoppingListItem') + ->find( { shopping_list => $list->id, id => $item_id } ); + + if ($item) { + $item->delete; + $list->update({version => $list->version + 1}); + } + + $r{list_version} = $list->version; + + return \%r; +}; + true;