kenken999/php
0
1<?php2 3namespace App\Http\Controllers;4 5use App\Http\Requests\User\LoginRequest;6use App\Http\Requests\User\StoreRequest;7use App\Http\Requests\User\UpdateRequest;8use App\Models\User;9use Symfony\Component\HttpFoundation\Response;10 11class UserController extends Controller12{13 protected User $user;14 15 public function __construct(User $user)16 {17 $this->user = $user;18 }19 20 public function show(): array21 {22 return $this->userResponse(auth()->getToken()->get());23 }24 25 public function store(StoreRequest $request): array26 {27 $user = $this->user->create($request->validated()['user']);28 29 auth()->login($user);30 31 return $this->userResponse(auth()->refresh());32 }33 34 public function update(UpdateRequest $request): array35 {36 auth()->user()->update($request->validated()['user']);37 38 return $this->userResponse(auth()->getToken()->get());39 }40 41 public function login(LoginRequest $request): array42 {43 if ($token = auth()->attempt($request->validated()['user'])) {44 return $this->userResponse($token);45 }46 47 abort(Response::HTTP_FORBIDDEN);48 }49 50 protected function userResponse(string $jwtToken): array51 {52 return ['user' => ['token' => $jwtToken] + auth()->user()->toArray()];53 }54}55 