chore: code style

This commit is contained in:
hackerESQ
2025-01-28 17:14:49 -06:00
parent c4736fae70
commit e8ef0921ad
123 changed files with 1051 additions and 1197 deletions
+3 -3
View File
@@ -1,8 +1,8 @@
<?php
namespace App\Http\ApiControllers;
abstract class Controller
{
//
}
}
@@ -2,14 +2,13 @@
namespace App\Http\ApiControllers;
use App\Models\Holding;
use App\Models\Portfolio;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Gate;
use App\Http\ApiControllers\Controller as ApiController;
use App\Http\Requests\HoldingRequest;
use App\Http\Resources\HoldingResource;
use App\Models\Holding;
use App\Models\Portfolio;
use HackerEsq\FilterModels\FilterModels;
use App\Http\ApiControllers\Controller as ApiController;
use Illuminate\Support\Facades\Gate;
class HoldingController extends ApiController
{
@@ -45,4 +44,4 @@ class HoldingController extends ApiController
return HoldingResource::make($holding);
}
}
}
@@ -4,10 +4,10 @@ declare(strict_types=1);
namespace App\Http\ApiControllers;
use App\Http\ApiControllers\Controller as ApiController;
use App\Http\Resources\MarketDataResource;
use App\Models\MarketData;
use Illuminate\Http\Request;
use App\Http\Resources\MarketDataResource;
use App\Http\ApiControllers\Controller as ApiController;
class MarketDataController extends ApiController
{
@@ -18,4 +18,4 @@ class MarketDataController extends ApiController
MarketData::getMarketData($symbol)
);
}
}
}
@@ -4,12 +4,12 @@ declare(strict_types=1);
namespace App\Http\ApiControllers;
use App\Models\Portfolio;
use Illuminate\Support\Facades\Gate;
use HackerEsq\FilterModels\FilterModels;
use App\Http\Resources\PortfolioResource;
use App\Http\Requests\PortfolioRequest;
use App\Http\ApiControllers\Controller as ApiController;
use App\Http\Requests\PortfolioRequest;
use App\Http\Resources\PortfolioResource;
use App\Models\Portfolio;
use HackerEsq\FilterModels\FilterModels;
use Illuminate\Support\Facades\Gate;
class PortfolioController extends ApiController
{
@@ -27,7 +27,7 @@ class PortfolioController extends ApiController
public function store(PortfolioRequest $request)
{
$portfolio = Portfolio::create($request->validated());
return PortfolioResource::make($portfolio);
}
@@ -55,4 +55,4 @@ class PortfolioController extends ApiController
return response()->noContent();
}
}
}
@@ -2,13 +2,12 @@
namespace App\Http\ApiControllers;
use App\Models\Transaction;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Gate;
use HackerEsq\FilterModels\FilterModels;
use App\Http\ApiControllers\Controller as ApiController;
use App\Http\Requests\TransactionRequest;
use App\Http\Resources\TransactionResource;
use App\Http\ApiControllers\Controller as ApiController;
use App\Models\Transaction;
use HackerEsq\FilterModels\FilterModels;
use Illuminate\Support\Facades\Gate;
class TransactionController extends ApiController
{
@@ -23,11 +22,11 @@ class TransactionController extends ApiController
}
public function store(TransactionRequest $request)
{
{
Gate::authorize('fullAccess', $request->portfolio);
$transaction = Transaction::create($request->validated());
return TransactionResource::make($transaction);
}
@@ -55,4 +54,4 @@ class TransactionController extends ApiController
return response()->noContent();
}
}
}
+3 -3
View File
@@ -2,9 +2,9 @@
namespace App\Http\ApiControllers;
use Illuminate\Http\Request;
use App\Http\Resources\UserResource;
use App\Http\ApiControllers\Controller as ApiController;
use App\Http\Resources\UserResource;
use Illuminate\Http\Request;
class UserController extends ApiController
{
@@ -12,4 +12,4 @@ class UserController extends ApiController
{
return UserResource::make($request->user());
}
}
}
@@ -2,21 +2,19 @@
namespace App\Http\Controllers;
use Exception;
use App\Models\User;
use App\Models\ConnectedAccount;
use Illuminate\Support\MessageBag;
use App\Models\User;
use App\Notifications\VerifyConnectedAccountNotification;
use Exception;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Blade;
use Illuminate\Support\MessageBag;
use Laravel\Socialite\Facades\Socialite;
use App\Notifications\VerifyConnectedAccountNotification;
class ConnectedAccountController extends Controller
{
/**
* Redirect the user to the GitHub authentication page.
*
*/
public function redirectToProvider(string $provider)
{
@@ -27,7 +25,6 @@ class ConnectedAccountController extends Controller
/**
* Obtain the user information from GitHub.
*
*/
public function handleProviderCallback(string $provider)
{
@@ -44,21 +41,21 @@ class ConnectedAccountController extends Controller
}
// check if this account is already linked
$connected_account = ConnectedAccount::firstOrNew([
$connected_account = ConnectedAccount::firstOrNew([
'provider' => $provider,
'provider_id' => $providerUser->id
'provider_id' => $providerUser->id,
], [
'token' => $providerUser->token,
'secret' => $providerUser->tokenSecret,
'refresh_token' => $providerUser->refreshToken,
'expires_at' => $providerUser->expiresIn,
'verified_at' => false
'verified_at' => false,
]);
// already linked and verified, let's go login!
if (
$connected_account->exists
&& !is_null($connected_account->verified_at)
$connected_account->exists
&& ! is_null($connected_account->verified_at)
) {
Auth::login($connected_account->user, true);
@@ -67,20 +64,20 @@ class ConnectedAccountController extends Controller
}
// new user, let's create one
if (!$user = User::where('email', $providerUser->email)->first()) {
if (! $user = User::where('email', $providerUser->email)->first()) {
$user = User::create([
'name' => $providerUser->name,
'email' => $providerUser->email,
'email_verified_at' => now()
'email_verified_at' => now(),
]);
$connected_account->user_id = $user->id;
$connected_account->verified_at = now();
$connected_account->save();
Auth::login($user, true);
return redirect(route('dashboard'));
}
@@ -91,23 +88,23 @@ class ConnectedAccountController extends Controller
$user->notify(new VerifyConnectedAccountNotification($connected_account->id));
return redirect(route('login'))
->with('status', __(
'Account already exists. Check your email to connect your :provider account.',
['provider' => config("services.$provider.name")]
));
->with('status', __(
'Account already exists. Check your email to connect your :provider account.',
['provider' => config("services.$provider.name")]
));
}
protected function validateProvider($provider): void
{
if (!in_array($provider, explode(',', config('services.enabled_login_providers')))) {
if (! in_array($provider, explode(',', config('services.enabled_login_providers')))) {
throw new Exception('Please provide a valid social provider.');
}
}
public function verify(ConnectedAccount $connected_account)
{
if (!$connected_account->verified_at) {
if (! $connected_account->verified_at) {
// mark request as verified
$connected_account->verified_at = now();
@@ -127,8 +124,8 @@ class ConnectedAccountController extends Controller
'css' => 'alert-success',
'icon' => Blade::render("<x-mary-icon class='w-7 h-7' name='o-check-circle' />"),
'position' => 'toast-top toast-end',
'timeout' => '5000'
]
'timeout' => '5000',
],
]));
}
}
+3 -3
View File
@@ -1,8 +1,8 @@
<?php
namespace App\Http\Controllers;
abstract class Controller
{
//
}
}
+6 -6
View File
@@ -16,15 +16,15 @@ class DashboardController extends Controller
// get portfolio metrics
$metrics = cache()->remember(
'dashboard-metrics-' . $user->id,
10,
'dashboard-metrics-'.$user->id,
10,
function () {
return
Holding::query()
->myHoldings()
->withoutWishlists()
->withPortfolioMetrics()
->first();
->myHoldings()
->withoutWishlists()
->withPortfolioMetrics()
->first();
}
);
+9 -10
View File
@@ -8,21 +8,20 @@ use Illuminate\Http\Request;
class HoldingController extends Controller
{
/**
* Display the specified resource.
*/
public function show(Request $request, Portfolio $portfolio, String $symbol)
public function show(Request $request, Portfolio $portfolio, string $symbol)
{
$holding = Holding::with([
'market_data',
'transactions' => function ($query) use ($symbol) {
$query->where('transactions.symbol', $symbol);
}
])
->symbol($symbol)
->portfolio($portfolio->id)
->firstOrFail();
'market_data',
'transactions' => function ($query) use ($symbol) {
$query->where('transactions.symbol', $symbol);
},
])
->symbol($symbol)
->portfolio($portfolio->id)
->firstOrFail();
$formattedTransactions = $holding->getFormattedTransactions();
@@ -2,21 +2,19 @@
namespace App\Http\Controllers;
use App\Models\User;
use App\Models\Portfolio;
use App\Models\User;
use Illuminate\Http\Request;
class InvitedOnboardingController extends Controller
{
/**
* Check if the invited user needs a password?
*
*/
public function __invoke(Request $request, Portfolio $portfolio, User $user)
{
if (!$request->hasValidSignature()) {
if (! $request->hasValidSignature()) {
abort(401, 'Invalid signature');
}
@@ -26,7 +24,7 @@ class InvitedOnboardingController extends Controller
// route to create password form
return view('auth.invited-onboarding', [
'portfolio' => $portfolio,
'user' => $user
'user' => $user,
]);
}
+7 -8
View File
@@ -9,7 +9,6 @@ use Illuminate\Support\Facades\Gate;
class PortfolioController extends Controller
{
/**
* Show the form for creating a new resource.
*/
@@ -26,21 +25,21 @@ class PortfolioController extends Controller
Gate::authorize('readOnly', $portfolio);
$portfolio->load(['transactions', 'holdings']);
// get portfolio metrics
$metrics = cache()->remember(
'portfolio-metrics-' . $portfolio->id,
60,
'portfolio-metrics-'.$portfolio->id,
60,
function () use ($portfolio) {
return Holding::query()
->portfolio($portfolio->id)
->withPortfolioMetrics()
->first();
->portfolio($portfolio->id)
->withPortfolioMetrics()
->first();
}
);
$formattedHoldings = $portfolio->getFormattedHoldings();
return view('portfolio.show', compact(['portfolio', 'metrics', 'formattedHoldings']));
}
}
@@ -4,7 +4,6 @@ namespace App\Http\Controllers;
class TransactionController extends Controller
{
/**
* Display the specified resource.
*/
+2 -2
View File
@@ -14,7 +14,7 @@ class SetLocale
*/
public function handle(Request $request, Closure $next)
{
if (!session()->has('locale')) {
if (! session()->has('locale')) {
session()->put('locale', $request->getPreferredLanguage(
config('app.available_locales')
));
@@ -24,4 +24,4 @@ class SetLocale
return $next($request);
}
}
}
+2 -3
View File
@@ -6,9 +6,8 @@ use Illuminate\Foundation\Http\FormRequest as BaseFormRequest;
class FormRequest extends BaseFormRequest
{
public function requestOrModelValue($key, $model): mixed
{
return $this->request->get($key) ?? $this->{$model}?->{$key};
}
}
}
}
+1 -4
View File
@@ -2,11 +2,8 @@
namespace App\Http\Requests;
use App\Http\Requests\FormRequest;
class HoldingRequest extends FormRequest
{
/**
* Get the validation rules that apply to the request.
*
@@ -16,7 +13,7 @@ class HoldingRequest extends FormRequest
{
$rules = [
'reinvest_dividends' => ['sometimes', 'boolean']
'reinvest_dividends' => ['sometimes', 'boolean'],
];
return $rules;
+2 -5
View File
@@ -2,11 +2,8 @@
namespace App\Http\Requests;
use App\Http\Requests\FormRequest;
class PortfolioRequest extends FormRequest
{
/**
* Get the validation rules that apply to the request.
*
@@ -21,9 +18,9 @@ class PortfolioRequest extends FormRequest
'wishlist' => ['sometimes', 'nullable', 'boolean'],
];
if (!is_null($this->portfolio)) {
if (! is_null($this->portfolio)) {
$rules['title'][0] = 'sometimes';
}
}
return $rules;
}
+10 -12
View File
@@ -3,18 +3,16 @@
namespace App\Http\Requests;
use App\Models\Portfolio;
use App\Http\Requests\FormRequest;
use App\Rules\SymbolValidationRule;
use App\Rules\QuantityValidationRule;
use App\Rules\SymbolValidationRule;
class TransactionRequest extends FormRequest
{
protected function prepareForValidation(): void
{
$this->merge([
'portfolio' => Portfolio::find($this->requestOrModelValue('portfolio_id', 'transaction'))
'portfolio' => Portfolio::find($this->requestOrModelValue('portfolio_id', 'transaction')),
]);
}
@@ -25,28 +23,28 @@ class TransactionRequest extends FormRequest
*/
public function rules(): array
{
$rules = [
'portfolio_id' => ['required', 'exists:portfolios,id'],
'symbol' => ['required', 'string', new SymbolValidationRule],
'transaction_type' => ['required', 'string', 'in:BUY,SELL'],
'date' => ['required', 'date_format:Y-m-d', 'before_or_equal:' . now()->format('Y-m-d')],
'date' => ['required', 'date_format:Y-m-d', 'before_or_equal:'.now()->format('Y-m-d')],
'quantity' => [
'required',
'numeric',
'min:0',
'required',
'numeric',
'min:0',
new QuantityValidationRule(
$this->input('portfolio'),
$this->requestOrModelValue('symbol', 'transaction'),
$this->requestOrModelValue('transaction_type', 'transaction'),
$this->requestOrModelValue('date', 'transaction')
)
),
],
'cost_basis' => ['exclude_if:transaction_type,SELL', 'min:0', 'numeric'],
'sale_price' => ['exclude_if:transaction_type,BUY', 'min:0', 'numeric'],
];
if (!is_null($this->transaction)) {
if (! is_null($this->transaction)) {
$rules['portfolio_id'][0] = 'sometimes';
$rules['symbol'][0] = 'sometimes';
$rules['transaction_type'][0] = 'sometimes';
@@ -64,7 +62,7 @@ class TransactionRequest extends FormRequest
) {
$rules['cost_basis'][0] = 'required';
}
}
}
return $rules;
}
+1 -1
View File
@@ -31,7 +31,7 @@ class HoldingResource extends JsonResource
'market_gain_dollars' => $this->market_gain_dollars,
'market_gain_percent' => $this->market_gain_percent,
'created_at' => $this->created_at,
'updated_at' => $this->updated_at
'updated_at' => $this->updated_at,
];
}
}
+1 -1
View File
@@ -8,7 +8,7 @@ use Illuminate\Http\Request;
use Illuminate\Http\Resources\Json\JsonResource;
class UserResource extends JsonResource
{
{
/**
* Transform the resource into an array.
*