<?php

namespace App\Http\Controllers\Api;

use App\Http\Controllers\Controller;
use App\Http\Controllers\Traits\ValidationTrait;
use App\Http\Requests\Api\UpdateUsersRequest;
use App\Http\Resources\User;
use App\Repository\WishListRepository;
use App\Services\WishListService;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Response;
use Illuminate\Support\Facades\Auth;

class UserController extends Controller
{
    use ValidationTrait;

    /** @var WishListRepository */
    private $withListRepository;

    /** @var WishListService */
    private $wishListService;

    public function __construct(
        WishListRepository $wishListRepository,
        WishListService $wishListService
    ) {
        $this->withListRepository = $wishListRepository;
        $this->wishListService = $wishListService;
    }

    public function show()
    {
        $user = Auth::user();

        return ['data' => new User($user)];
    }

    public function edit(UpdateUsersRequest $request)
    {
        $user = Auth::user();
        $user->update($request->all());

        return new JsonResponse(['data' => 'user was successfully updated'], Response::HTTP_OK);
    }
}
