|
@@ -6,6 +6,7 @@ use App\Http\Requests\UserDependentRequest;
|
|
|
use App\Http\Resources\UserDependentResource;
|
|
use App\Http\Resources\UserDependentResource;
|
|
|
use App\Services\UserDependentService;
|
|
use App\Services\UserDependentService;
|
|
|
use Illuminate\Http\JsonResponse;
|
|
use Illuminate\Http\JsonResponse;
|
|
|
|
|
+use Illuminate\Http\Request;
|
|
|
|
|
|
|
|
class UserDependentController extends Controller
|
|
class UserDependentController extends Controller
|
|
|
{
|
|
{
|
|
@@ -17,6 +18,20 @@ class UserDependentController extends Controller
|
|
|
return $this->successResponse(payload: UserDependentResource::collection($items));
|
|
return $this->successResponse(payload: UserDependentResource::collection($items));
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ public function indexPaginated(Request $request): JsonResponse
|
|
|
|
|
+ {
|
|
|
|
|
+ $filters = $request->only(['status', 'search']);
|
|
|
|
|
+ $perPage = min((int) $request->get('per_page', 10), 100);
|
|
|
|
|
+ $paginator = $this->service->getAllPaginated($filters, $perPage);
|
|
|
|
|
+
|
|
|
|
|
+ return $this->successResponse(payload: [
|
|
|
|
|
+ 'data' => UserDependentResource::collection($paginator->items()),
|
|
|
|
|
+ 'total' => $paginator->total(),
|
|
|
|
|
+ 'from' => $paginator->firstItem() ?? 0,
|
|
|
|
|
+ 'to' => $paginator->lastItem() ?? 0,
|
|
|
|
|
+ ]);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
public function store(UserDependentRequest $request): JsonResponse
|
|
public function store(UserDependentRequest $request): JsonResponse
|
|
|
{
|
|
{
|
|
|
$item = $this->service->create($request->validated());
|
|
$item = $this->service->create($request->validated());
|
|
@@ -47,4 +62,22 @@ class UserDependentController extends Controller
|
|
|
$this->service->delete($id);
|
|
$this->service->delete($id);
|
|
|
return $this->successResponse(message: __('messages.deleted'), code: 204);
|
|
return $this->successResponse(message: __('messages.deleted'), code: 204);
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
|
|
+ public function approve(int $id): JsonResponse
|
|
|
|
|
+ {
|
|
|
|
|
+ $item = $this->service->approve($id);
|
|
|
|
|
+ if (!$item) {
|
|
|
|
|
+ return $this->errorResponse(message: __('messages.not_found'), code: 404);
|
|
|
|
|
+ }
|
|
|
|
|
+ return $this->successResponse(payload: new UserDependentResource($item), message: __('messages.updated'));
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ public function refuse(int $id): JsonResponse
|
|
|
|
|
+ {
|
|
|
|
|
+ $item = $this->service->refuse($id);
|
|
|
|
|
+ if (!$item) {
|
|
|
|
|
+ return $this->errorResponse(message: __('messages.not_found'), code: 404);
|
|
|
|
|
+ }
|
|
|
|
|
+ return $this->successResponse(payload: new UserDependentResource($item), message: __('messages.updated'));
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|