This commit is contained in:
hackerESQ
2025-01-27 20:26:09 -06:00
parent ea22c27710
commit 83d5ad213b
4 changed files with 158 additions and 3 deletions
+15 -3
View File
@@ -5,6 +5,8 @@ namespace App\Http\ApiControllers;
use App\Models\Holding;
use App\Models\Portfolio;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Gate;
use App\Http\Requests\HoldingRequest;
use App\Http\Resources\HoldingResource;
use HackerEsq\FilterModels\FilterModels;
use App\Http\ApiControllers\Controller as ApiController;
@@ -25,12 +27,22 @@ class HoldingController extends ApiController
public function show(Portfolio $portfolio, string $symbol)
{
//
Gate::authorize('readOnly', $portfolio);
$holding = $portfolio->holdings()->symbol($symbol)->firstOrFail();
return HoldingResource::make($holding);
}
public function put(FilterModels $filters)
public function update(HoldingRequest $request, Portfolio $portfolio, string $symbol)
{
//
Gate::authorize('fullAccess', $portfolio);
$holding = $portfolio->holdings()->symbol($symbol)->firstOrFail();
$holding->update($request->validated());
return HoldingResource::make($holding);
}
}
+24
View File
@@ -0,0 +1,24 @@
<?php
namespace App\Http\Requests;
use App\Http\Requests\FormRequest;
class HoldingRequest extends FormRequest
{
/**
* Get the validation rules that apply to the request.
*
* @return array<string, \Illuminate\Contracts\Validation\ValidationRule|array<mixed>|string>
*/
public function rules(): array
{
$rules = [
'reinvest_dividends' => ['sometimes', 'boolean']
];
return $rules;
}
}