47 lines
1.4 KiB
PHP
Executable File
47 lines
1.4 KiB
PHP
Executable File
<?php
|
|
|
|
namespace App\Http\Controllers\Api;
|
|
|
|
use App\Http\Controllers\Controller;
|
|
use App\Http\Requests\StoreStudentAssignmentRequest;
|
|
use App\Services\AssignmentService;
|
|
use Illuminate\Http\JsonResponse;
|
|
use Illuminate\Http\Request;
|
|
|
|
class AssignmentController extends Controller
|
|
{
|
|
public function index(Request $request, AssignmentService $service): JsonResponse
|
|
{
|
|
$payload = $service->buildClassAssignments([
|
|
'semester' => (string) $request->query('semester', ''),
|
|
'school_year' => (string) $request->query('school_year', ''),
|
|
'for_api' => true,
|
|
]);
|
|
|
|
return response()->json($payload);
|
|
}
|
|
|
|
/**
|
|
* Save / update a student-class assignment
|
|
*/
|
|
public function store(StoreStudentAssignmentRequest $request, AssignmentService $service): JsonResponse
|
|
{
|
|
$assignment = $service->saveStudentAssignment(
|
|
$request->validated(),
|
|
$request->user()?->id // fallback handled in service
|
|
);
|
|
|
|
return response()->json([
|
|
'message' => 'Assignment saved successfully',
|
|
'data' => $assignment,
|
|
], 201);
|
|
}
|
|
|
|
/**
|
|
* Optional endpoint if you want old `classAssignmentData()` naming preserved
|
|
*/
|
|
public function classAssignmentData(Request $request, AssignmentService $service): JsonResponse
|
|
{
|
|
return $this->index($request, $service);
|
|
}
|
|
} |