File: /var/www/api_matriculas/app/Http/Controllers/PostulationController.php
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Requests\Postulation\StorePostulationRequest;
use App\Http\Requests\Postulation\UpdatePostulationRequest;
use App\Services\PostulationService;
use Exception;
class PostulationController extends Controller
{
protected $postulationService;
public function __construct(PostulationService $postulationService)
{
$this->postulationService = $postulationService;
}
public function list(Request $request)
{
try {
$year = $request->get('year');
$limit = $request->get('limit');
$data = $this->postulationService->list($year, null, $limit);
return genericResponse(['data' => $data, 'message' => 'ok', 'code' => 200], 200);
} catch (Exception $e) {
$errorCode = $e->getCode();
return genericResponse(['error' => $e->getMessage()], $errorCode ?: 500);
}
}
public function store(StorePostulationRequest $request)
{
try {
$this->postulationService->store($request);
return genericResponse(['data' => null, 'message' => 'Postulación creada correctamente', 'code' => 201], 201);
} catch (Exception $e) {
$errorCode = $e->getCode();
return genericResponse(['error' => $e->getMessage()], $errorCode ?: 500);
}
}
public function update($id, UpdatePostulationRequest $request)
{
try {
$this->postulationService->update($request, $id);
return genericResponse(['data' => null, 'message' => 'Postulación actualizada correctamente', 'code' => 204], 204);
} catch (Exception $e) {
$errorCode = $e->getCode();
return genericResponse(['error' => $e->getMessage()], $errorCode ?: 500);
}
}
public function show($id)
{
try {
$data = $this->postulationService->show($id);
return genericResponse(['data' => $data, 'message' => 'ok', 'code' => 200], 200);
} catch (Exception $e) {
$errorCode = $e->getCode();
return genericResponse(['error' => $e->getMessage()], $errorCode ?: 500);
}
}
public function destroy($id)
{
try {
$this->postulationService->delete($id);
return genericResponse(['data' => null, 'message' => 'Postulación eliminada correctamente', 'code' => 200], 200);
} catch (Exception $e) {
$errorCode = $e->getCode();
return genericResponse(['error' => $e->getMessage()], $errorCode ?: 500);
}
}
}