File manager - Edit - /var/www/html/spdc/api/routes/api.php
Back
<?php use App\Models\ScaleTeam; use App\Models\Department; use Illuminate\Support\Arr; use Illuminate\Http\Request; use App\Models\ScaleFunction; use App\Enums\ScaleFunctionType; use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\Route; use App\Http\Controllers\BDTController; use App\Http\Controllers\AuthController; use App\Http\Controllers\BenefitController; use App\Http\Controllers\FormController; use App\Http\Controllers\RoleController; use App\Http\Controllers\UserController; use App\Http\Controllers\FieldController; use App\Http\Controllers\ScaleController; use App\Http\Controllers\OptionController; use App\Http\Controllers\ShelterController; use App\Http\Controllers\CategoryController; use App\Http\Controllers\ScheduleController; use App\Http\Controllers\PlaceTypeController; use App\Http\Controllers\DepartmentController; use App\Http\Controllers\MinuteBookController; use App\Http\Controllers\MonitoringController; use App\Http\Controllers\OccurrencyController; use App\Http\Controllers\PermissionController; use App\Http\Controllers\ScaleTradesController; use App\Http\Controllers\VehicleTypeController; use App\Http\Controllers\ExternalAgentController; use App\Http\Controllers\NupdecActivitiesController; use App\Http\Controllers\NupdecActuationsController; use App\Http\Controllers\NupdecController; use App\Http\Controllers\GeologicHazardLayerController; use App\Http\Controllers\ModuleController; use App\Http\Controllers\ScaleFunctionController; use App\Http\Controllers\ShelterFamilyController; use App\Http\Controllers\OccurrencyTypeController; use App\Http\Controllers\ShelterKitchenController; use App\Http\Controllers\ShelterManagerController; use App\Http\Controllers\TransportationController; use App\Http\Controllers\ShelterHistoricController; use App\Http\Controllers\ShelterVoluntaryController; use App\Http\Controllers\ShelterWaterTankController; use App\Http\Controllers\ShelterCommonAreaController; use App\Http\Controllers\ShelterServiceAreaController; use App\Http\Controllers\OccurrencyScriptureController; use App\Http\Controllers\OccurrencyInspectionController; use App\Http\Controllers\OccurrencyScriptureDemolitionController; use App\Http\Controllers\OccurrencyScriptureImpedimentController; use App\Http\Controllers\OccurrencyScriptureInterdictionController; use App\Http\Controllers\OccurrencyScriptureNotificationController; use App\Http\Controllers\OccurrencyScriptureDisinterdictionController; use App\Http\Controllers\DonationQuestionnaireController; use App\Http\Controllers\EmergencyQuestionnaireController; use App\Http\Controllers\FamilyHealthQuestionnaireController; use App\Http\Controllers\FamilyTypeController; use App\Http\Controllers\HousingTypeController; use App\Http\Controllers\MaritalStatusController; use App\Http\Controllers\MemberHealthQuestionnaireController; use App\Http\Controllers\MemberVaccineQuestionnaireController; use App\Http\Controllers\VolunteerController; use App\Http\Controllers\OrganizationController; /* |-------------------------------------------------------------------------- | API Routes |-------------------------------------------------------------------------- | | Here is where you can register API routes for your application. These | routes are loaded by the RouteServiceProvider within a group which | is assigned the "api" middleware group. Enjoy building your API! */ Route::post('login', [AuthController::class, 'login']) ->name('auth.login'); Route::post('user/modify-password', [UserController::class, 'firstAccessModifyPassword']) ->name('user.modifyPassword'); Route::post('password/email', [AuthController::class, 'sendEmail']) ->name('password-reset.email'); Route::post('password/token-validator', [AuthController::class, 'tokenValidator']) ->name('password-reset.token-validator'); Route::post('password/reset', [AuthController::class, 'resetPassword']) ->name('password-reset.reset'); Route::middleware(['auth.sso'])->group(function () { Route::post('logout', [AuthController::class, 'logout']) ->name('auth.logout'); Route::get('session', [AuthController::class, 'session']) ->name('auth.session'); Route::apiResource('user', UserController::class); Route::prefix('user')->controller(UserController::class)->group(function () { Route::get('/{user}/reset/password-default', 'resetPasswordDefault'); Route::put('/{user}/status', 'changeStatus'); Route::post('{user}/sync-permissions', 'syncPermissions')->name('user.syncPermissions'); Route::post('{user}/sync-roles', 'syncRoles')->name('user.syncRoles'); }); Route::get('permission', [PermissionController::class, 'index']); Route::post('permission/store-many', [PermissionController::class, 'storeMany'])->name('permission.storeMany'); Route::post('role/{role}/sync-permissions', [RoleController::class, 'syncPermissions']) ->name('role.syncPermissions'); Route::apiResource('role', RoleController::class); Route::post('module/store-many', [ModuleController::class, 'storeMany'])->name('module.storeMany'); Route::apiResource('module', ModuleController::class); Route::apiResource('organization', OrganizationController::class)->except('destroy'); Route::post('organization/store-many', [OrganizationController::class, 'storeMany'])->name('organization.storeMany'); Route::post('field/destroy-many', [FieldController::class, 'destroyMany'])->name('field.destroyMany'); Route::apiResource('field', FieldController::class); Route::post('form/destroy-many', [FormController::class, 'destroyMany'])->name('form.destroyMany'); Route::apiResource('form', FormController::class); Route::post('category/destroy-many', [CategoryController::class, 'destroyMany'])->name('category.destroyMany'); Route::apiResource('category', CategoryController::class); Route::post('occurrency/{occurrency}/move', [OccurrencyController::class, 'move'])->name('occurrency.move'); Route::post('occurrency/{occurrency}/execution/', [OccurrencyInspectionController::class, 'saveExecution'])->name('occurrency.execution.save'); Route::post('occurrency/{occurrency}/inspection/', [OccurrencyInspectionController::class, 'saveInspection'])->name('occurrency.inspection.save'); Route::post('occurrency/destroy-many', [OccurrencyController::class, 'destroyMany'])->name('occurrency.destroyMany'); Route::apiResource('occurrency', OccurrencyController::class); Route::post('occurrency-type/disable', [OccurrencyTypeController::class, 'disable'])->name('occurrency-type.disable'); Route::post('occurrency-type/enable', [OccurrencyTypeController::class, 'enable'])->name('occurrency-type.enable'); Route::apiResource('occurrency-type', OccurrencyTypeController::class)->except(['destroy']); Route::post('place-type/destroy-many', [PlaceTypeController::class, 'destroyMany'])->name('place-type.destroyMany'); Route::apiResource('place-type', PlaceTypeController::class); Route::prefix('occurrency-scripture')->group(function () { Route::get('/list/{occurrency}', [OccurrencyScriptureController::class, 'listByOccurrency'])->name('occurrency-scripture.listByOccurrency'); Route::post('/sign/{scripture}', [OccurrencyScriptureController::class, 'sign'])->name('occurrency-scripture.sign'); Route::prefix('interdiction')->controller(OccurrencyScriptureInterdictionController::class)->group(function () { Route::post('/{occurrency}', 'store')->name('occurrency-scripture.interdiction.store'); Route::put('/{interdiction}', 'update')->name('occurrency-scripture.interdiction.update'); Route::get('/{interdiction}', 'show')->name('occurrency-scripture.interdiction.show'); Route::get('/{interdiction}/pdf', 'pdf')->name('occurrency-scripture.interdiction.pdf'); }); Route::prefix('disinterdiction')->controller(OccurrencyScriptureDisinterdictionController::class)->group(function () { Route::post('/{occurrency}', 'store')->name('occurrency-scripture.disinterdiction.store'); Route::put('/{disinterdiction}', 'update')->name('occurrency-scripture.disinterdiction.update'); Route::get('/{disinterdiction}', 'show')->name('occurrency-scripture.disinterdiction.show'); Route::get('/{disinterdiction}/pdf', 'pdf')->name('occurrency-scripture.disinterdiction.pdf'); }); Route::prefix('notification')->controller(OccurrencyScriptureNotificationController::class)->group(function () { Route::post('/{occurrency}', 'store')->name('occurrency-scripture.notification.store'); Route::put('/{notification}', 'update')->name('occurrency-scripture.notification.update'); Route::get('/{notification}', 'show')->name('occurrency-scripture.notification.show'); Route::get('/{notification}/pdf', 'pdf')->name('occurrency-scripture.notification.pdf'); }); Route::prefix('impediment')->controller(OccurrencyScriptureImpedimentController::class)->group(function () { Route::post('/{occurrency}', 'store')->name('occurrency-scripture.impediment.store'); Route::put('/{impediment}', 'update')->name('occurrency-scripture.impediment.update'); Route::get('/{impediment}', 'show')->name('occurrency-scripture.impediment.show'); Route::get('/{impediment}/pdf', 'pdf')->name('occurrency-scripture.impediment.pdf'); }); Route::prefix('demolition')->controller(OccurrencyScriptureDemolitionController::class)->group(function () { Route::post('/{occurrency}', 'store')->name('occurrency-scripture.demolition.store'); Route::put('/{demolition}', 'update')->name('occurrency-scripture.demolition.update'); Route::get('/{demolition}', 'show')->name('occurrency-scripture.demolition.show'); Route::get('/{demolition}/pdf', 'pdf')->name('occurrency-scripture.demolition.pdf'); }); }); Route::prefix('option')->controller(OptionController::class)->group(function () { Route::get('/validations', 'getValidations')->name('option.validations'); Route::get('/categories', 'getCategories')->name('option.categories'); Route::get('/occurrency-types', 'getOccurrencyTypes')->name('option.occurrencyTypes'); Route::get('/scripture-types', 'getScriptureTypes')->name('option.scriptureTypes'); Route::get('/place-types', 'getPlaceTypes')->name('option.placeTypes'); Route::get('/external-agents', 'getExternalAgents')->name('option.externalAgents'); Route::get('/scale-functions', 'getScaleFunctions')->name('option.scaleFunctions'); Route::get('/internal-agents', 'getInternalAgents')->name('option.internalAgents'); Route::get('/scale-teams', 'getScaleTeams')->name('option.scaleTeams'); Route::get('/available-scales', 'getAvailableScales')->name('option.availableScales'); }); Route::apiResource('monitoring', MonitoringController::class); Route::apiResource('nupdecs', NupdecController::class); Route::apiResource('/volunteers', VolunteerController::class); Route::apiResource('nupdec/activities', NupdecActivitiesController::class); Route::post('nupdec/activity/store-many', [NupdecActivitiesController::class, 'storeMany'])->name('nupdec.activities.store-many'); Route::get('nupdec/activities-by-nupdec/{nupdec_id}', [NupdecActivitiesController::class, 'getByNupdec'])->name('nupdec.activities.by-nupdec'); Route::apiResource('nupdec/actuations', NupdecActuationsController::class); Route::post('nupdec/actuation/store-many', [NupdecActuationsController::class, 'storeMany'])->name('nupdec.actuations.store-many'); Route::get('nupdec/actuations-by-nupdec/{nupdec_id}', [NupdecActuationsController::class, 'getByNupdec'])->name('nupdec.actuations.by-nupdec'); Route::apiResource('shelter', ShelterController::class); Route::prefix('shelter')->controller(ShelterController::class)->group(function () { Route::post('/open', 'openShelter'); Route::post('/close', 'closeShelter'); Route::get('/area/types', 'getAreaTypes'); Route::post('/set-real-open-date', 'setRealOpenDate'); Route::post('/convert-to-shelter', 'convertIntoShelter'); Route::post('/convert-to-support-point', 'convertIntoSuportPoint'); Route::get('/dashboard/{id}', 'showDashboard'); Route::post('/report/{id}', 'generateReport'); Route::get('/families/{id}', 'getShelteredFamilies'); }); Route::get('shelter/{shelter}/voluntary', [ShelterVoluntaryController::class, 'indexByShelter'])->name('shelter.voluntaries.index'); Route::apiResource('voluntary', ShelterVoluntaryController::class); Route::apiResource('families', ShelterFamilyController::class); Route::prefix('families')->controller(ShelterFamilyController::class)->group(function () { Route::post('/check-existing-adress', 'checkExistingAdress'); Route::post('/existing-adress', 'getExistingAdressIndicator'); }); Route::prefix('health')->controller(ShelterFamilyController::class)->group(function () { Route::get('/counters', 'getHealthCounters'); Route::get('/members', 'getHealthList'); }); Route::get('/families-indicators', [ShelterFamilyController::class, 'getBooleanIndicators'])->name('boolean-indicators'); Route::get('/affected-families', [ShelterFamilyController::class, 'getAffectedFamilies'])->name('affected-families'); Route::apiResource('marital-status', MaritalStatusController::class); Route::apiResource('benefit', BenefitController::class); Route::apiResource('housing-type', HousingTypeController::class); Route::apiResource('family-type', FamilyTypeController::class); Route::apiResource('managers', ShelterManagerController::class); Route::prefix('managers')->controller(ShelterManagerController::class)->group(function () { Route::get('/shelter/{id}', 'getAllByShelter'); }); Route::apiResource('kitchens', ShelterKitchenController::class); Route::apiResource('common-areas', ShelterCommonAreaController::class); Route::apiResource('service-areas', ShelterServiceAreaController::class); Route::apiResource('water-tanks', ShelterWaterTankController::class); Route::prefix('historics')->controller(ShelterHistoricController::class)->group(function () { Route::get('/types', 'getHistoricTypes'); Route::get('/shelter/{id}', 'historicsByShelter'); }); Route::apiResource('historics', ShelterHistoricController::class); Route::post('scale-function/disable', [ScaleFunctionController::class, 'disable'])->name('scale-function.disable'); Route::post('scale-function/enable', [ScaleFunctionController::class, 'enable'])->name('scale-function.enable'); Route::apiResource('scale-function', ScaleFunctionController::class)->except(['destroy']); Route::post('department/destroy-many', [DepartmentController::class, 'destroyMany'])->name('department.destroyMany'); Route::post('department/store-many', [DepartmentController::class, 'storeMany'])->name('department.storeMany'); Route::post('department/disable', [DepartmentController::class, 'disable'])->name('department.disable'); Route::post('department/enable', [DepartmentController::class, 'enable'])->name('department.enable'); Route::apiResource('department', DepartmentController::class)->except(['destroy']); Route::post('external-agent/destroy-many', [ExternalAgentController::class, 'destroyMany'])->name('external-agent.destroyMany'); Route::apiResource('external-agent', ExternalAgentController::class)->except(['destroy']); Route::get('scale/my-agenda', [ScaleController::class, 'myAgenda'])->name('scale.myAgenda'); Route::post('scale/destroy-many', [ScaleController::class, 'destroyMany'])->name('scale.destroyMany'); Route::post('scale/finish/{scale}', [ScaleController::class, 'finish'])->name('scale.finish'); Route::get('scale/suggest-warning/{scale}', [ScaleController::class, 'suggestWarningScale'])->name('scale.suggestWarningScale'); Route::post('scale/warning', [ScaleController::class, 'storeWarning'])->name('scale.storeWarning'); Route::put('scale/warning/{scale}', [ScaleController::class, 'updateWarning'])->name('scale.udpateWarning'); Route::apiResource('scale', ScaleController::class)->except(['destroy']); Route::post('scale-trade/request-extra-hour/{extra_hour}', [ScaleTradesController::class, 'requestExtraHour'])->name('scale-trade.requestExtraHour'); Route::post('scale-trade/accept-extra-hour/{extra_hour_request}', [ScaleTradesController::class, 'acceptExtraHour'])->name('scale-trade.acceptExtraHour'); Route::post('scale-trade/request-warning-day/{scale_day}', [ScaleTradesController::class, 'requestWarningDay'])->name('scale-trade.requestWarningDay'); Route::post('scale-trade/accept-warning-day/{warning_request}', [ScaleTradesController::class, 'acceptWarningDay'])->name('scale-trade.acceptWarningDay'); Route::get('scale-trade/requested-days/{department}', [ScaleTradesController::class, 'indexScaleDayRequest'])->name('scale-trade.requestedDays'); Route::get('scale-trade/requested-extra-hours/{department}', [ScaleTradesController::class, 'indexScaleExtraHourRequest'])->name('scale-trade.requestedExtraHours'); Route::get('scale-trade/requested-warning-days/{department}', [ScaleTradesController::class, 'indexScaleWarningDayRequest'])->name('scale-trade.requestedWarningDays'); Route::post('scale-trade/request-day', [ScaleTradesController::class, 'requestDay'])->name('scale-trade.requestDay'); Route::post('scale-trade/accept-day/{day_request}', [ScaleTradesController::class, 'acceptDay'])->name('scale-trade.acceptDay'); Route::post('vehicle-type/destroy-many', [VehicleTypeController::class, 'destroyMany'])->name('vehicle-type.destroyMany'); Route::apiResource('vehicle-type', VehicleTypeController::class); Route::post('transportation/update-status/{transportation}', [TransportationController::class, 'updateStatus'])->name('transportation.updateStatus'); Route::post('transportation/destroy-many', [TransportationController::class, 'destroyMany'])->name('transportation.destroyMany'); Route::apiResource('transportation', TransportationController::class); Route::post('schedule/destroy-many', [ScheduleController::class, 'destroyMany'])->name('schedule.destroyMany'); Route::apiResource('schedule', ScheduleController::class); Route::get('bdt/me', [BDTController::class, 'me'])->name('bdt.me'); Route::get('bdt/{bdt}', [BDTController::class, 'show'])->name('bdt.show'); Route::post('bdt/{bdt}/tranportation-supply', [BDTController::class, 'transportationSupply'])->name('bdt.transportationSupply'); Route::post('bdt/{bdt}/finish', [BDTController::class, 'finish'])->name('bdt.finish'); Route::prefix('questionnaire')->group(function () { Route::apiResource('donations', DonationQuestionnaireController::class); Route::apiResource('family-health', FamilyHealthQuestionnaireController::class); Route::apiResource('member-health', MemberHealthQuestionnaireController::class); Route::apiResource('member-vaccine', MemberVaccineQuestionnaireController::class); Route::apiResource('emergency', EmergencyQuestionnaireController::class); }); Route::apiResource('geologic-hazard-layers', GeologicHazardLayerController::class); Route::apiResource('minute-book', MinuteBookController::class); Route::get('livro-ata', [MinuteBookController::class, 'bookOfRecords']) ->name('minute-book.book-of-records'); Route::post('helper/scale-request', function (Request $request) { $currentUser = $request->user; $department = Department::firstOrCreate([ 'name' => 'Operações' ]); $data = [ 'warning' => $request->input('warning', false), 'month' => $request->input('month', fake()->month()), 'year' => $request->input('year', fake()->year()), 'department_id' => $request->input('department', $department->id), 'members' => [] ]; $scaleFunctions = [ 'Auxiliar 01', 'Chefe', 'Comunicante', 'Condutor' ]; $scaleTeams = [ 'A', 'B', 'C', 'D' ]; $usersToExclude = []; foreach($scaleTeams as $st) { $team = ScaleTeam::firstOrCreate([ 'name' => $st ]); foreach($scaleFunctions as $sf) { $function = ScaleFunction::firstOrCreate([ 'name' => $sf, 'type' => ScaleFunctionType::INTERNO->value ]); $users = DB::table('internal_agent_scale_function') ->where('scale_function_id', $function->id) ->whereNotIn('user_id', $usersToExclude) ->get() ->pluck('user_id') ->toArray(); if (count($users) > 0) { /** * adicionando o usuário autenticado */ $user = Arr::random($users); $data['members'][] = [ 'user_id' => $user, 'scale_function_id' => $function->id, 'scale_team_id' => $team->id ]; $usersToExclude[] = $user; } else { $accessToken = authLogin()['access_token']; $url = env('AUTH_SERVICE_URL') . '/api/user?like=app_id,' . env('CLIENT_APP_KEY'); $userRequest = [ 'name' => fake()->unique->name, 'document' => generateValidCPF(), 'email' => fake()->unique->email, 'password' => '12345678', 'user_type_id' => 1, ]; // create new user $newUserResponse = authServiceClient('post', $url, $userRequest, [ 'Authorization' => 'Bearer ' . $accessToken ]); $user = $newUserResponse->json()['data']['user']['id']; DB::table('internal_agent_scale_function')->insertOrIgnore([ 'user_id' => $user, 'scale_function_id' => $function->id ]); /** * attaching to deparments */ DB::table('department_user')->insertOrIgnore([ 'user_id' => $user, 'department_id' => $data['department_id'] ]); $data['members'][] = [ 'user_id' => $user, 'scale_function_id' => $function->id, 'scale_team_id' => $team->id ]; $usersToExclude[] = $user; } } } /** * verificando se o currentUser está no array de members */ if (!in_array($currentUser['id'], $usersToExclude)) { $sortedFunction = count($scaleFunctions) > 0 ? Arr::random($scaleFunctions) : null; $sortedTeam = count($scaleTeams) > 0 ? Arr::random($scaleTeams) : null; if (!is_null($sortedFunction) && !is_null($sortedTeam)) { $team = ScaleTeam::firstOrCreate([ 'name' => $sortedTeam ]); $function = ScaleFunction::firstOrCreate([ 'name' => $sortedFunction ]); DB::table('internal_agent_scale_function')->insertOrIgnore([ 'user_id' => $currentUser['id'], 'scale_function_id' => $function->id ]); foreach($data['members'] as $key => $member) { if($member['scale_function_id'] == $function->id && $member['scale_team_id'] == $team->id) { $data['members'][$key]['user_id'] = $currentUser['id']; } } } } return $data; }); });
| ver. 1.4 |
Github
|
.
| PHP 8.3.28 | Generation time: 0.12 |
proxy
|
phpinfo
|
Settings