File manager - Edit - /var/www/html/homologBancodetalentos/app/Http/Controllers/TalentBank/LookupCrudController.php
Back
<?php namespace App\Http\Controllers\TalentBank; use App\Http\Controllers\Controller; use App\Http\Controllers\TalentBank\Concerns\ResolvesLookupService; use Exception; use Illuminate\Http\JsonResponse; use Illuminate\Http\Request; use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\Validator; abstract class LookupCrudController extends Controller { use ResolvesLookupService; abstract protected function translationModelKey(): string; /** JSON key for single resource (e.g. neighbourhood, proficiency). */ abstract protected function responseKey(): string; public function __construct() { $this->middleware('auth.permission:get-talent-bank-options')->only(['index', 'show']); $this->middleware('auth.permission:insert-talent-bank-options')->only(['store']); $this->middleware('auth.permission:update-talent-bank-options')->only(['update']); $this->middleware('auth.permission:delete-talent-bank-options')->only(['destroy']); } public function index() { try { $response = $this->lookupService()->index(); return response()->json([ 'data' => $response, 'message' => __('validation.success'), ], JsonResponse::HTTP_OK); } catch (Exception $e) { return response()->json( ['message' => $e->getMessage()], JsonResponse::HTTP_INTERNAL_SERVER_ERROR ); } } public function show(Request $request) { $id = (int) last($request->route()->parameters()); $model = ($this->lookupModelClass())::query()->findOrFail($id); $response = $this->lookupService()->show($model); return response()->json([ 'data' => [$this->responseKey() => $response], 'message' => __('validation.success'), ], JsonResponse::HTTP_OK); } public function store(Request $request) { $validator = Validator::make($request->all(), [ 'name' => 'required|string', ]); if ($validator->fails()) { return response()->json( [ 'message' => __('validation.validation_error'), 'data' => $validator->errors(), ], JsonResponse::HTTP_UNPROCESSABLE_ENTITY ); } try { DB::beginTransaction(); $response = $this->lookupService()->store($request); DB::commit(); return response()->json([ 'message' => __('crud.message.insert', ['model' => __($this->translationModelKey())]), $this->responseKey() => $response, ], JsonResponse::HTTP_OK); } catch (Exception $e) { DB::rollBack(); return response()->json( ['message' => $e->getMessage()], JsonResponse::HTTP_INTERNAL_SERVER_ERROR ); } } public function update(Request $request) { $id = (int) last($request->route()->parameters()); $model = ($this->lookupModelClass())::query()->findOrFail($id); $validator = Validator::make($request->all(), [ 'name' => 'required|string', ]); if ($validator->fails()) { return response()->json( [ 'message' => __('validation.validation_error'), 'data' => $validator->errors(), ], JsonResponse::HTTP_UNPROCESSABLE_ENTITY ); } try { DB::beginTransaction(); $response = $this->lookupService()->update($request, $model); DB::commit(); return response()->json([ 'message' => __('crud.message.update', ['model' => __($this->translationModelKey())]), $this->responseKey() => $response, ], JsonResponse::HTTP_OK); } catch (Exception $e) { DB::rollBack(); return response()->json( ['message' => $e->getMessage()], JsonResponse::HTTP_INTERNAL_SERVER_ERROR ); } } public function destroy(Request $request) { $id = (int) last($request->route()->parameters()); $model = ($this->lookupModelClass())::query()->findOrFail($id); try { DB::beginTransaction(); $this->lookupService()->destroy($model); DB::commit(); return response()->json([ 'message' => __('crud.message.delete', ['model' => __($this->translationModelKey())]), ], JsonResponse::HTTP_OK); } catch (Exception $e) { DB::rollBack(); return response()->json( ['message' => $e->getMessage()], JsonResponse::HTTP_INTERNAL_SERVER_ERROR ); } } }
| ver. 1.4 |
Github
|
.
| PHP 8.3.28 | Generation time: 0.02 |
proxy
|
phpinfo
|
Settings