. */ declare(strict_types=1); namespace FireflyIII\Api\V1\Controllers\Models\BudgetLimit; use FireflyIII\Api\V1\Controllers\Controller; use FireflyIII\Exceptions\FireflyException; use FireflyIII\Models\Budget; use FireflyIII\Models\BudgetLimit; use FireflyIII\Repositories\Budget\BudgetLimitRepositoryInterface; use FireflyIII\User; use Illuminate\Http\JsonResponse; /** * Class DestroyController */ class DestroyController extends Controller { private BudgetLimitRepositoryInterface $blRepository; /** * BudgetLimitController constructor. * * @codeCoverageIgnore */ public function __construct() { parent::__construct(); $this->middleware( function ($request, $next) { /** @var User $user */ $user = auth()->user(); $this->blRepository = app(BudgetLimitRepositoryInterface::class); $this->blRepository->setUser($user); return $next($request); } ); } /** * Remove the specified resource from storage. * * @param Budget $budget * @param BudgetLimit $budgetLimit * * @return JsonResponse * @codeCoverageIgnore */ public function destroy(Budget $budget, BudgetLimit $budgetLimit): JsonResponse { if ($budget->id !== $budgetLimit->budget_id) { throw new FireflyException('20028: The budget limit does not belong to the budget.'); } $this->blRepository->destroyBudgetLimit($budgetLimit); return response()->json([], 204); } }