diff --git a/app/Http/Controllers/Api/CardOrder/CardOrderController.php b/app/Http/Controllers/Api/CardOrder/CardOrderController.php index 8fd739e..0b47731 100644 --- a/app/Http/Controllers/Api/CardOrder/CardOrderController.php +++ b/app/Http/Controllers/Api/CardOrder/CardOrderController.php @@ -28,6 +28,7 @@ class CardOrderController extends Controller CardOrder::query() ->with(['branch', 'cardState', 'cardType']) ->where('user_id', auth()->id()) + ->latest() ->get() )); } diff --git a/app/Http/Controllers/Api/CardTransaction/CardTransactionsController.php b/app/Http/Controllers/Api/CardTransaction/CardTransactionsController.php index f5c3d07..c1110b1 100644 --- a/app/Http/Controllers/Api/CardTransaction/CardTransactionsController.php +++ b/app/Http/Controllers/Api/CardTransaction/CardTransactionsController.php @@ -25,6 +25,7 @@ class CardTransactionsController extends Controller return response()->json( CardTransaction::query() ->where('user_id', auth()->id()) + ->latest() ->get() ); } diff --git a/app/Http/Controllers/ProfileController.php b/app/Http/Controllers/ProfileController.php index 149c35b..a7a8242 100644 --- a/app/Http/Controllers/ProfileController.php +++ b/app/Http/Controllers/ProfileController.php @@ -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) { diff --git a/app/Http/Requests/UpdateUserProfileRequest.php b/app/Http/Requests/UpdateUserProfileRequest.php index 08fe803..721afa0 100644 --- a/app/Http/Requests/UpdateUserProfileRequest.php +++ b/app/Http/Requests/UpdateUserProfileRequest.php @@ -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()))], ]; } } diff --git a/app/Http/Resources/ProfileResponse.php b/app/Http/Resources/ProfileResponse.php new file mode 100644 index 0000000..e86bde0 --- /dev/null +++ b/app/Http/Resources/ProfileResponse.php @@ -0,0 +1,30 @@ + + */ + 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'), + ]; + } +} diff --git a/app/Modules/ApiAuth/Controllers/ApiAuthController.php b/app/Modules/ApiAuth/Controllers/ApiAuthController.php index 0d5b839..af3336c 100644 --- a/app/Modules/ApiAuth/Controllers/ApiAuthController.php +++ b/app/Modules/ApiAuth/Controllers/ApiAuthController.php @@ -3,6 +3,7 @@ namespace App\Modules\ApiAuth\Controllers; use App\Http\Controllers\Controller; +use App\Http\Resources\ProfileResponse; use App\Models\User; use App\Modules\ApiAuth\Requests\AuthLoginRequest; use App\Modules\ApiAuth\Requests\AuthRegisterRequest; @@ -62,12 +63,7 @@ class ApiAuthController extends Controller 'success' => true, 'token' => $user->createToken(bin2hex(random_bytes(20)))->plainTextToken, 'message' => __('successfully verified'), - 'user' => [ - 'name' => $user->name, - 'phone' => $user->phone, - 'passport_serie' => $user->getOption('passport_serie'), - 'passport_id' => $user->getOption('passport_id'), - ], + 'user' => new ProfileResponse($user), ]); }