Remove use of deprecated function.

This commit is contained in:
James Cole 2020-08-02 11:53:04 +02:00
parent 30d7d5d90e
commit fb0d31226a
No known key found for this signature in database
GPG Key ID: B5669F9493CDE38D
6 changed files with 29 additions and 61 deletions

View File

@ -232,31 +232,6 @@ class BudgetController extends Controller
return response()->json($manager->createData($resource)->toArray())->header('Content-Type', 'application/vnd.api+json'); return response()->json($manager->createData($resource)->toArray())->header('Content-Type', 'application/vnd.api+json');
} }
/**
* Store a newly created resource in storage.
*
* @param BudgetLimitRequest $request
* @param Budget $budget
*
* @throws Exception
* @return JsonResponse
*/
public function storeBudgetLimit(BudgetLimitRequest $request, Budget $budget): JsonResponse
{
$data = $request->getAll();
$data['budget'] = $budget;
$budgetLimit = $this->blRepository->storeBudgetLimit($data);
$manager = $this->getManager();
/** @var BudgetLimitTransformer $transformer */
$transformer = app(BudgetLimitTransformer::class);
$transformer->setParameters($this->parameters);
$resource = new Item($budgetLimit, $transformer, 'budget_limits');
return response()->json($manager->createData($resource)->toArray())->header('Content-Type', 'application/vnd.api+json');
}
/** /**
* Show all transactions. * Show all transactions.
* *

View File

@ -158,20 +158,19 @@ class BudgetLimitController extends Controller
* *
* @param BudgetLimitRequest $request * @param BudgetLimitRequest $request
* *
* @return JsonResponse
* @throws FireflyException * @throws FireflyException
* *
* @return JsonResponse
*/ */
public function store(BudgetLimitRequest $request): JsonResponse public function store(BudgetLimitRequest $request): JsonResponse
{ {
$data = $request->getAll(); $data = $request->getAll();
$budget = $this->repository->findNull($data['budget_id']); $data['start_date'] = $data['start'];
if (null === $budget) { $data['end_date'] = $data['end'];
throw new FireflyException('200004: Budget does not exist.'); // @codeCoverageIgnore
} $budgetLimit = $this->blRepository->store($data);
$data['budget'] = $budget; $manager = $this->getManager();
$budgetLimit = $this->blRepository->storeBudgetLimit($data);
$manager = $this->getManager();
/** @var BudgetLimitTransformer $transformer */ /** @var BudgetLimitTransformer $transformer */
$transformer = app(BudgetLimitTransformer::class); $transformer = app(BudgetLimitTransformer::class);

View File

@ -35,6 +35,7 @@ use Illuminate\Foundation\Http\FormRequest;
class BudgetLimitRequest extends FormRequest class BudgetLimitRequest extends FormRequest
{ {
use ConvertsDataTypes; use ConvertsDataTypes;
/** /**
* Authorize logged in users. * Authorize logged in users.
* *
@ -53,7 +54,7 @@ class BudgetLimitRequest extends FormRequest
*/ */
public function getAll(): array public function getAll(): array
{ {
return [ $data = [
'budget_id' => $this->integer('budget_id'), 'budget_id' => $this->integer('budget_id'),
'start' => $this->date('start'), 'start' => $this->date('start'),
'end' => $this->date('end'), 'end' => $this->date('end'),
@ -61,6 +62,12 @@ class BudgetLimitRequest extends FormRequest
'currency_id' => $this->integer('currency_id'), 'currency_id' => $this->integer('currency_id'),
'currency_code' => $this->string('currency_code'), 'currency_code' => $this->string('currency_code'),
]; ];
// if request has a budget already, drop the rule.
$budget = $this->route()->parameter('budget');
if (null !== $budget) {
$data['budget_id'] = $budget->id;
}
return $data;
} }
/** /**

View File

@ -26,6 +26,7 @@ namespace FireflyIII\Repositories\Budget;
use Carbon\Carbon; use Carbon\Carbon;
use Exception; use Exception;
use FireflyIII\Exceptions\FireflyException;
use FireflyIII\Factory\TransactionCurrencyFactory; use FireflyIII\Factory\TransactionCurrencyFactory;
use FireflyIII\Models\Budget; use FireflyIII\Models\Budget;
use FireflyIII\Models\BudgetLimit; use FireflyIII\Models\BudgetLimit;
@ -284,23 +285,10 @@ class BudgetLimitRepository implements BudgetLimitRepositoryInterface
* @param array $data * @param array $data
* *
* @return BudgetLimit * @return BudgetLimit
* @throws FireflyException
*/ */
public function store(array $data): BudgetLimit public function store(array $data): BudgetLimit
{ {
return BudgetLimit::create($data);
}
/**
* @param array $data
*
* @return BudgetLimit
* @deprecated
*/
public function storeBudgetLimit(array $data): BudgetLimit
{
/** @var Budget $budget */
$budget = $data['budget'];
// if no currency has been provided, use the user's default currency: // if no currency has been provided, use the user's default currency:
/** @var TransactionCurrencyFactory $factory */ /** @var TransactionCurrencyFactory $factory */
$factory = app(TransactionCurrencyFactory::class); $factory = app(TransactionCurrencyFactory::class);
@ -308,16 +296,23 @@ class BudgetLimitRepository implements BudgetLimitRepositoryInterface
if (null === $currency) { if (null === $currency) {
$currency = app('amount')->getDefaultCurrencyByUser($this->user); $currency = app('amount')->getDefaultCurrencyByUser($this->user);
} }
$currency->enabled = true;
$currency->save();
// find limit with same date range. // find the budget:
// if it exists, return that one. $budget = $this->user->budgets()->find((int) $data['budget_id']);
if (null === $budget) {
throw new FireflyException('200004: Budget does not exist.'); // @codeCoverageIgnore
}
// find limit with same date range and currency.
$limit = $budget->budgetlimits() $limit = $budget->budgetlimits()
->where('budget_limits.start_date', $data['start']->format('Y-m-d 00:00:00')) ->where('budget_limits.start_date', $data['start']->format('Y-m-d 00:00:00'))
->where('budget_limits.end_date', $data['end']->format('Y-m-d 00:00:00')) ->where('budget_limits.end_date', $data['end']->format('Y-m-d 00:00:00'))
->where('budget_limits.transaction_currency_id', $currency->id) ->where('budget_limits.transaction_currency_id', $currency->id)
->get(['budget_limits.*'])->first(); ->get(['budget_limits.*'])->first();
if (null !== $limit) { if (null !== $limit) {
return $limit; throw new FireflyException('200027: Budget limit already exists.'); // @codeCoverageIgnore
} }
Log::debug('No existing budget limit, create a new one'); Log::debug('No existing budget limit, create a new one');

View File

@ -111,14 +111,6 @@ interface BudgetLimitRepositoryInterface
*/ */
public function store(array $data): BudgetLimit; public function store(array $data): BudgetLimit;
/**
* @param array $data
*
* @return BudgetLimit
* @deprecated
*/
public function storeBudgetLimit(array $data): BudgetLimit;
/** /**
* @param BudgetLimit $budgetLimit * @param BudgetLimit $budgetLimit
* @param array $data * @param array $data

View File

@ -167,7 +167,7 @@ Route::group(
Route::get('{budget}', ['uses' => 'BudgetController@show', 'as' => 'show']); Route::get('{budget}', ['uses' => 'BudgetController@show', 'as' => 'show']);
Route::put('{budget}', ['uses' => 'BudgetController@update', 'as' => 'update']); Route::put('{budget}', ['uses' => 'BudgetController@update', 'as' => 'update']);
Route::delete('{budget}', ['uses' => 'BudgetController@delete', 'as' => 'delete']); Route::delete('{budget}', ['uses' => 'BudgetController@delete', 'as' => 'delete']);
Route::post('{budget}/limits', ['uses' => 'BudgetController@storeBudgetLimit', 'as' => 'store_budget_limit']); Route::post('{budget}/limits', ['uses' => 'BudgetLimitController@store', 'as' => 'store_budget_limit']);
Route::get('{budget}/transactions', ['uses' => 'BudgetController@transactions', 'as' => 'transactions']); Route::get('{budget}/transactions', ['uses' => 'BudgetController@transactions', 'as' => 'transactions']);
Route::get('{budget}/attachments', ['uses' => 'BudgetController@attachments', 'as' => 'attachments']); Route::get('{budget}/attachments', ['uses' => 'BudgetController@attachments', 'as' => 'attachments']);