Files
alrahma_sunday_school_api/app/Http/Controllers/Api/AttendanceCommentTemplateController.php
T
2026-03-05 12:29:37 -05:00

101 lines
2.7 KiB
PHP

<?php
namespace App\Http\Controllers\Api;
use App\Http\Controllers\Controller;
use App\Http\Requests\AttendanceCommentTemplate\StoreAttendanceCommentTemplateRequest;
use App\Http\Requests\AttendanceCommentTemplate\UpdateAttendanceCommentTemplateRequest;
use App\Services\AttendanceCommentTemplateService;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
class AttendanceCommentTemplateController extends Controller
{
public function __construct(
private readonly AttendanceCommentTemplateService $service
) {}
/**
* GET /api/attendance-comment-templates
*/
public function index(Request $request): JsonResponse
{
$activeOnly = $request->boolean('active_only', false);
$templates = $this->service->list($activeOnly);
return response()->json([
'status' => 'success',
'data' => $templates,
]);
}
/**
* POST /api/attendance-comment-templates
*/
public function store(StoreAttendanceCommentTemplateRequest $request): JsonResponse
{
$template = $this->service->create($request->validated());
return response()->json([
'status' => 'success',
'message' => 'Template created successfully.',
'data' => $template,
], 201);
}
/**
* GET /api/attendance-comment-templates/{id}
*/
public function show(int $id): JsonResponse
{
$template = $this->service->findOrFail($id);
return response()->json([
'status' => 'success',
'data' => $template,
]);
}
/**
* PUT/PATCH /api/attendance-comment-templates/{id}
*/
public function update(UpdateAttendanceCommentTemplateRequest $request, int $id): JsonResponse
{
$template = $this->service->update($id, $request->validated());
return response()->json([
'status' => 'success',
'message' => 'Template updated successfully.',
'data' => $template,
]);
}
/**
* DELETE /api/attendance-comment-templates/{id}
*/
public function destroy(int $id): JsonResponse
{
$this->service->delete($id);
return response()->json([
'status' => 'success',
'message' => 'Template deleted successfully.',
]);
}
/**
* Optional compatibility endpoint with your old CI shape:
* GET /api/attendance-comment-templates/list-data
*/
public function listData(Request $request): JsonResponse
{
$activeOnly = $request->boolean('active_only', false);
$templates = $this->service->list($activeOnly);
return response()->json([
'templates' => $templates,
]);
}
}