File manager - Edit - /var/www/html/pcadigital/api/app/Http/Services/DashboardService.php
Back
<?php namespace App\Http\Services; use App\Classes\BaseServiceResponse; use App\Enums\OccurrenceStatusEnum; use App\Http\Resources\OccurrenceViewResource; use App\Http\Resources\OmbudsmanOccurrenceViewResource; use App\Models\Occurrence; use App\Models\OccurrenceImage; use App\Models\OccurrenceView; use App\Models\OmbudsmanOccurrenceView; use App\Repositories\OccurrenceRepository; use Illuminate\Http\Request; use Illuminate\Support\Facades\DB; class DashboardService extends BaseService { private OccurrenceRepository $occurrenceRepository; private AuthService $authService; public function __construct() { $this->occurrenceRepository = new OccurrenceRepository(); $this->authService = new AuthService(); } public function userDashboard(Request $request, array $user): BaseServiceResponse { $isOmbudsman = false; foreach ($user['organization'] as $organization){ $isOmbudsman = strcasecmp($organization['name'], OccurrenceStatusEnum::OMBUDSMAN->value) == 0; if ($isOmbudsman) break; } if ($isOmbudsman) { $results = $this->occurrenceRepository->getAllOccurrences($request->query('created_at', null)); }else { $userOrganIds = $this->pluckOrg($user['organization']); $results = $this->occurrenceRepository->getOcurrenceByOrg($userOrganIds, $request->query('created_at', null)); } $countStatus = $this->countAllOccurrenceStatus(); $results = [ $results->toArray(), $countStatus ]; return $this->success( $results ); } public function citizenDashboard(array $data) { return $this->occurrenceRepository->getOccurrencesByUserPaginated($data['id']); } public function feedDashboard(Request $request, array $user) { $allUnresolved = $this->occurrenceRepository->getAllByUser($user['id']); $perPage = $request->get('per_page', 10); return $allUnresolved->paginate($perPage); } public function compareDeepValue($val1, $val2) { return strcmp($val1['occurrence_id'], $val2['occurrence_id']); } private function countAllOccurrenceStatus() { $items = $this->occurrenceRepository->occurrenceView(); $filtered = []; foreach ($items as $result) { if ($result->status == OccurrenceStatusEnum::OPEN->value) { $filtered['aberto'][] = $result; } if ( $result->status == OccurrenceStatusEnum::OMBUDSMAN->value || $result->status == OccurrenceStatusEnum::WITHOUT_ORGAN->value || $result->status == OccurrenceStatusEnum::IN_REVIEW->value ) { $filtered['analise'][] = $result; } if ($result->status == OccurrenceStatusEnum::MAINTENANCE_IN_PROGRESS->value) { $filtered['andamento'][] = $result; } if ( $result->status == OccurrenceStatusEnum::DISAPPROVED->value || $result->status == OccurrenceStatusEnum::CONCLUDED->value ) { $filtered['fechados'][] = $result; } } $filteredCount = []; $filteredCount['aberto'] = isset($filtered['aberto']) ? count($filtered['aberto']) : 0; $filteredCount['analise'] = isset($filtered['analise']) ? count($filtered['analise']) : 0; $filteredCount['fechados'] = isset($filtered['fechados']) ? count($filtered['fechados']) : 0; $filteredCount['andamento'] = isset($filtered['andamento']) ? count($filtered['andamento']) : 0; return $filteredCount; } public function pluckOrg(array $array) { return \array_column($array, 'id'); } }
| ver. 1.4 |
Github
|
.
| PHP 8.3.28 | Generation time: 0.01 |
proxy
|
phpinfo
|
Settings