Files
investbrain/app/Http/ApiControllers/TransactionController.php
T

56 lines
1.5 KiB
PHP
Raw Normal View History

2025-01-23 22:47:16 -06:00
<?php
namespace App\Http\ApiControllers;
2025-01-24 19:24:16 -06:00
use App\Models\Transaction;
2025-01-23 22:47:16 -06:00
use Illuminate\Http\Request;
2025-01-26 22:56:05 -06:00
use Illuminate\Support\Facades\Gate;
2025-01-24 19:24:16 -06:00
use HackerEsq\FilterModels\FilterModels;
2025-01-26 22:56:05 -06:00
use App\Http\Requests\TransactionRequest;
2025-01-24 19:24:16 -06:00
use App\Http\Resources\TransactionResource;
2025-01-23 22:47:16 -06:00
use App\Http\ApiControllers\Controller as ApiController;
class TransactionController extends ApiController
{
2025-01-24 19:24:16 -06:00
public function index(FilterModels $filters)
2025-01-23 22:47:16 -06:00
{
2025-01-24 19:24:16 -06:00
$filters->setQuery(Transaction::query());
$filters->setScopes(['myTransactions']);
$filters->setSearchableColumns(['symbol']);
return TransactionResource::collection($filters->paginated());
2025-01-23 22:47:16 -06:00
}
2025-01-26 22:56:05 -06:00
public function store(TransactionRequest $request)
{
$transaction = Transaction::create($request->validated());
return TransactionResource::make($transaction);
}
public function show(Transaction $transaction)
{
Gate::authorize('readOnly', $transaction);
return TransactionResource::make($transaction);
}
public function update(TransactionRequest $request, Transaction $transaction)
{
Gate::authorize('fullAccess', $transaction);
$transaction->update($request->validated());
return TransactionResource::make($transaction);
}
public function destroy(Transaction $transaction)
{
Gate::authorize('fullAccess', $transaction);
$transaction->delete();
return response()->noContent();
}
2025-01-23 22:47:16 -06:00
}