profile update

This commit is contained in:
2025-07-08 13:12:30 +05:00
parent 8a96772634
commit afeefc7aed
6 changed files with 57 additions and 14 deletions

View File

@@ -28,6 +28,7 @@ class CardOrderController extends Controller
CardOrder::query()
->with(['branch', 'cardState', 'cardType'])
->where('user_id', auth()->id())
->latest()
->get()
));
}

View File

@@ -25,6 +25,7 @@ class CardTransactionsController extends Controller
return response()->json(
CardTransaction::query()
->where('user_id', auth()->id())
->latest()
->get()
);
}

View File

@@ -3,6 +3,7 @@
namespace App\Http\Controllers;
use App\Http\Requests\UpdateUserProfileRequest;
use App\Http\Resources\ProfileResponse;
use Illuminate\Http\JsonResponse;
class ProfileController extends Controller
@@ -15,12 +16,7 @@ class ProfileController extends Controller
/** @var \App\Models\User */
$user = auth()->user();
return response()->json([
'name' => $user->name,
'phone' => $user->phone,
'passport_serie' => $user->getOption('passport_serie'),
'passport_id' => $user->getOption('passport_id'),
]);
return response()->json(new ProfileResponse($user));
}
/**
@@ -36,6 +32,9 @@ class ProfileController extends Controller
'phone' => $request->phone,
'options->passport_serie' => $request->passport_serie,
'options->passport_id' => $request->passport_id,
'options->card_number' => $request->card_number,
'options->card_month' => $request->card_month,
'options->card_year' => $request->card_year,
];
if ($request->password) {

View File

@@ -2,6 +2,7 @@
namespace App\Http\Requests;
use App\Modules\DateHelper\Repositories\DateHelperRepository;
use App\Repos\System\Settings\Legal\PassportRepo;
use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Validation\Rule;
@@ -47,14 +48,29 @@ class UpdateUserProfileRequest extends FormRequest
*
* @example I-AS
*/
'passport_serie' => ['nullable', 'string', Rule::in(array_keys(PassportRepo::values()))],
'passport_serie' => ['sometimes', 'string', Rule::in(array_keys(PassportRepo::values()))],
/**
* Passport id
*
* @example 100999
*/
'passport_id' => ['nullable', 'numeric', 'digits:6'],
'passport_id' => ['sometimes', 'numeric', 'digits:6'],
/**
* @example 9934612100000543
*/
'card_number' => ['sometimes', 'digits:16'],
/**
* @example 12
*/
'card_month' => ['sometimes', Rule::in(array_keys(DateHelperRepository::staticNumberMonths()))],
/**
* @example 2049
*/
'card_year' => ['sometimes', Rule::in(array_keys(DateHelperRepository::staticNumberYears()))],
];
}
}

View File

@@ -0,0 +1,30 @@
<?php
namespace App\Http\Resources;
use Illuminate\Http\Request;
use Illuminate\Http\Resources\Json\JsonResource;
/**
* @mixin \App\Models\User
*/
class ProfileResponse extends JsonResource
{
/**
* Transform the resource into an array.
*
* @return array<string, mixed>
*/
public function toArray(Request $request): array
{
return [
'name' => $this->name,
'phone' => $this->phone,
'passport_serie' => $this->getOption('passport_serie'),
'passport_id' => $this->getOption('passport_id'),
'card_number' => $this->getOption('card_number'),
'card_month' => $this->getOption('card_month'),
'card_year' => $this->getOption('card_year'),
];
}
}