File manager - Edit - /var/www/html/back/app/Http/Controllers/Api/ProjectGroupController.php
Back
<?php declare(strict_types=1); namespace App\Http\Controllers\Api\V1; use App\Attributes\OpenApiResponse; use App\Domain\Article\Enums\ArticleTypeEnum; use App\Domain\Project\Requests\CreateProjectGroupRequest; use App\Domain\Project\Services\projectGroupService; use App\Http\Controllers\Api\ApiController; use App\Http\Resources\CashFlowCreditResource; use App\Http\Resources\CashFlowDebitResource; use App\Http\Resources\ShowProjectGroupResource; use App\Models\ProjectGroup; use App\Responses\ResponseDto; use App\Services\CashFlow\ActiveTabProjectService; use App\Services\CashFlowService; use Illuminate\Support\Facades\Log; use Knuckles\Scribe\Attributes\Group; use Illuminate\Http\Request; /** * Контроллер для управления группами. */ class ProjectGroupController extends ApiController { protected ProjectGroupService $projectGroupService; public function __construct(projectGroupService $articleService, protected CashFlowService $cashFlowService, protected ActiveTabProjectService $tabProjectService) { $this->projectGroupService = $articleService; } /** * Получить список групп проектов. */ #[Group('projects')] #[OpenApiResponse(ProjectGroup::class)] public function index(int $modelID): ResponseDto { return new ResponseDto( data: $this->projectGroupService->getAll($modelID), status: true ); } /** * Получить группу по ID. */ #[Group('projects')] #[OpenApiResponse(ProjectGroup::class)] public function show(int $modelID, int $id, Request $request): ResponseDto { $group = $this->projectGroupService->findById($id); $sort = $request->get('sort'); $direction = $request->get('sort_direction', 'ASC'); if ($sort) { //TODO сделать сортировку в $group } return new ResponseDto( data: new ShowProjectGroupResource($this->projectGroupService->findById($id)), status: true ); } /** * Создать новую группу. * * @queryParam name string * @queryParam description string * @queryParam projects array[] */ #[Group('projects')] #[OpenApiResponse(ProjectGroup::class)] public function store(int $modelID, CreateProjectGroupRequest $request): ResponseDto { return new ResponseDto( data: $this->projectGroupService->create($modelID, $request), status: true ); } /** * Обновить существующую группу. */ #[Group('projects')] #[OpenApiResponse(ProjectGroup::class)] public function update(int $modelID, int $id, Request $request) { $data = $request->all(); return new ResponseDto( status: (bool)$this->projectGroupService->update($id, $data) ); } /** * Удалить группу. */ #[Group('projects')] #[OpenApiResponse(ResponseDto::class)] public function destroy(int $modelID, int $id): ResponseDto { return new ResponseDto( status: (bool)$this->projectGroupService->delete($id) ); } public function getGroupedByArticle($modelId, $groupId, Request $request) { $paymentsMadeInput = $request->input('payments_made'); $filters = [ 'date_from' => $request->input('date_from'), 'date_to' => $request->input('date_to'), 'payments_made' => $paymentsMadeInput ?? null, ]; return $this->projectGroupService->getGroupedByArticleForProjetsGroup($modelId, $groupId, $filters); } }
| ver. 1.4 |
Github
|
.
| PHP 8.3.30 | Generation time: 0.17 |
proxy
|
phpinfo
|
Settings