CoolFace
Apppublic

kenken999/php

sourceHugging Faceupdated 2y agoView on Hugging Face
0likes
UserController.php55 linesDownload Raw Back to Controllers
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