File "UserController.php"
Full Path: /var/www/html/back/app/Http/Controllers/Api/V1/UserController.php
File size: 2.14 KB
MIME-type: text/x-php
Charset: utf-8
<?php
namespace App\Http\Controllers\Api\V1;
use App\Http\Controllers\Api\ApiController;
use App\Http\Resources\User\UserResource;
use App\Http\Resources\User\UserShowPermissionsResource;
use App\Http\Resources\User\UserShowResource;
use App\Repositories\User\Interfaces\UserInterface;
use App\Responses\ResponseDto;
use Illuminate\Http\Request;
class UserController extends ApiController
{
private $userRepository;
public function __construct(UserInterface $user)
{
$this->userRepository = $user;
}
public function index(Request $request)
{
$activeUsers = $this->userRepository->index('active',$request);
$blockedUsers = $this->userRepository->index('blocked',$request);
$totalActiveUsers = $activeUsers->count();
$totalBlockedUsers = $blockedUsers->count();
return new ResponseDto(
data: [
'active' => [
'count' => $totalActiveUsers,
'users' => UserResource::collection($activeUsers),
],
'blocked' => [
'count' => $totalBlockedUsers,
'users' => UserResource::collection($blockedUsers),
],
],
status: true
);
}
public function update(Request $request, $userId)
{
return $this->userRepository->update($request->toArray(), $userId);
}
public function show($userId)
{
return new UserShowResource($this->userRepository->show((int)$userId));
}
public function store(Request $request)
{
$image = $request->file('image');
return $this->userRepository->store($request->toArray(), $image);
}
public function blocked($userId, Request $request)
{
$type = $request->boolean('type');
return $this->userRepository->blocked($userId, $type);
}
public function destroy($userId)
{
return $this->userRepository->destroy($userId);
}
public function showPermissions($userId, $modelId)
{
return new UserShowPermissionsResource($this->userRepository->showPermissions($userId, $modelId));
}
}