| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- <?php
- namespace App\Http\Controllers;
- use App\Http\Requests\FirstAccessCheckRequest;
- use App\Http\Requests\FirstAccessRegisterRequest;
- use App\Http\Resources\UserResource;
- use App\Services\FirstAccessService;
- use Illuminate\Http\JsonResponse;
- class FirstAccessController extends Controller
- {
- public function __construct(protected FirstAccessService $service) {}
- public function check(FirstAccessCheckRequest $request): JsonResponse
- {
- $result = $this->service->check($request->validated()['registration']);
- $message = in_array($result['status'], FirstAccessService::BLOCKING_STATUSES, true)
- ? $this->service->blockedMessage($result['status'])
- : null;
- return $this->successResponse(payload: $result, message: $message);
- }
- public function register(FirstAccessRegisterRequest $request): JsonResponse
- {
- $user = $this->service->register(
- $request->validated(),
- $request->file('photo'),
- );
- $canLogin = $user->canLogin();
- return $this->successResponse(
- payload: [
- 'user' => new UserResource($user),
- 'can_login' => $canLogin,
- 'status' => $user->status,
- ],
- message: $canLogin
- ? __('messages.first_access.register_success')
- : __('messages.first_access.register_pending_approval'),
- code: 201,
- );
- }
- }
|