File: /var/www/matriculas_api_dev/app/Http/Controllers/PeriodController.php
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Requests\Period\StorePeriodRequest;
use App\Http\Requests\Period\UpdatePeriodRequest;
use App\Services\PeriodService;
use Exception;
class PeriodController extends Controller
{
protected $periodService;
public function __construct(PeriodService $periodService)
{
$this->periodService = $periodService;
}
public function list($allData = true)
{
try {
$data = $this->periodService->list($allData);
return genericResponse(['data' => $data, 'message' => 'ok', 'code' => 200], 200);
} catch (Exception $e) {
return genericResponse(['error' => $e->getMessage()], $e->getCode() ?: 500);
}
}
public function store(StorePeriodRequest $request)
{
try {
$data = $this->periodService->store($request);
return genericResponse(['data' => $data, 'message' => 'Periodo Creado Correctamente', 'code' => 201], 201);
} catch (Exception $e) {
return genericResponse(['error' => $e->getMessage()], $e->getCode() ?: 500);
}
}
public function update($id, UpdatePeriodRequest $request)
{
try {
$this->periodService->update($request, $id);
return genericResponse(['data' => null, 'message' => 'Periodo actualizado correctamente', 'code' => 204], 204);
} catch (Exception $e) {
return genericResponse(['error' => $e->getMessage()], $e->getCode() ?: 500);
}
}
public function show($id)
{
try {
$data = $this->periodService->show($id);
return genericResponse(['data' => $data, 'message' => 'ok', 'code' => 200], 200);
} catch (Exception $e) {
return genericResponse(['error' => $e->getMessage()], $e->getCode() ?: 500);
}
}
public function destroy($id)
{
try {
$this->periodService->delete($id);
return genericResponse(['data' => null, 'message' => 'Periodo eliminado correctamente', 'code' => 200], 200);
} catch (Exception $e) {
return genericResponse(['error' => $e->getMessage()], $e->getCode() ?: 500);
}
}
public function activate($id)
{
try {
$data = $this->periodService->activate($id);
return genericResponse(['data' => $data, 'message' => 'Periodo activado correctamente', 'code' => 200], 200);
} catch (Exception $e) {
return genericResponse(['error' => $e->getMessage()], $e->getCode() ?: 500);
}
}
public function deactivate($id)
{
try {
$data = $this->periodService->deactivate($id);
return genericResponse(['data' => $data, 'message' => 'Periodo desactivado correctamente', 'code' => 200], 200);
} catch (Exception $e) {
return genericResponse(['error' => $e->getMessage()], $e->getCode() ?: 500);
}
}
public function myPeriods()
{
try {
$data = $this->periodService->getPeriodsForParent();
return genericResponse(['data' => $data, 'message' => 'ok', 'code' => 200], 200);
} catch (Exception $e) {
return genericResponse(['error' => $e->getMessage()], $e->getCode() ?: 500);
}
}
public function getPeriodActivate()
{
try {
$data = $this->periodService->getPeriodActivate();
return genericResponse(['data' => $data, 'message' => 'OK', 'code' => 200], 200);
} catch (Exception $e) {
return genericResponse(['error' => $e->getMessage()], $e->getCode() ?: 500);
}
}
}