update controllers logic
This commit is contained in:
@@ -31,9 +31,14 @@ class AdminAttendanceApiController extends Controller
|
||||
|
||||
public function updateManagement(UpdateAttendanceManagementRequest $request): JsonResponse
|
||||
{
|
||||
$user = auth()->user();
|
||||
if ($user === null) {
|
||||
return response()->json(['message' => 'Unauthorized.'], 401);
|
||||
}
|
||||
|
||||
try {
|
||||
return response()->json(
|
||||
$this->attendanceService->updateAttendanceManagement(auth()->user(), $request->validated())
|
||||
$this->attendanceService->updateAttendanceManagement($user, $request->validated())
|
||||
);
|
||||
} catch (Throwable $e) {
|
||||
return response()->json(['message' => $e->getMessage()], 422);
|
||||
@@ -42,9 +47,14 @@ class AdminAttendanceApiController extends Controller
|
||||
|
||||
public function addEntry(AdminAddAttendanceEntryRequest $request): JsonResponse
|
||||
{
|
||||
$user = auth()->user();
|
||||
if ($user === null) {
|
||||
return response()->json(['message' => 'Unauthorized.'], 401);
|
||||
}
|
||||
|
||||
try {
|
||||
return response()->json(
|
||||
$this->attendanceService->adminAddEntry(auth()->user(), $request->validated())
|
||||
$this->attendanceService->adminAddEntry($user, $request->validated())
|
||||
);
|
||||
} catch (Throwable $e) {
|
||||
return response()->json(['message' => $e->getMessage()], 422);
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
namespace App\Http\Controllers\Api\Attendance;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Services\ApplicationUrlService;
|
||||
use App\Services\AttendanceCommentTemplateService;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use Illuminate\Http\Request;
|
||||
@@ -11,10 +12,22 @@ use Illuminate\Support\Facades\Validator;
|
||||
class AttendanceCommentTemplateController extends Controller
|
||||
{
|
||||
public function __construct(
|
||||
protected AttendanceCommentTemplateService $service
|
||||
protected AttendanceCommentTemplateService $service,
|
||||
protected ApplicationUrlService $urls,
|
||||
) {
|
||||
}
|
||||
|
||||
/**
|
||||
* Bootstrap URLs for admin UIs (legacy CodeIgniter parity + SPA).
|
||||
*/
|
||||
public function bootstrapUrls(): JsonResponse
|
||||
{
|
||||
return response()->json([
|
||||
'status' => true,
|
||||
'data' => $this->urls->attendanceCommentTemplateBootstrapData(),
|
||||
]);
|
||||
}
|
||||
|
||||
public function index(Request $request): JsonResponse
|
||||
{
|
||||
$activeOnly = filter_var(
|
||||
@@ -119,4 +132,83 @@ class AttendanceCommentTemplateController extends Controller
|
||||
'message' => 'Template deleted successfully.',
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* CodeIgniter {@see \App\Controllers\View\AttendanceCommentTemplateController::save}
|
||||
* POST fields: id?, min_score, max_score, template_text, is_active (checkbox "on").
|
||||
*/
|
||||
public function legacySave(Request $request): JsonResponse
|
||||
{
|
||||
$id = $request->input('id');
|
||||
$hasId = $id !== null && $id !== '' && (int) $id > 0;
|
||||
|
||||
$rules = [
|
||||
'min_score' => ['required', 'integer', 'min:0', 'max:100'],
|
||||
'max_score' => ['required', 'integer', 'min:0', 'max:100'],
|
||||
'template_text' => ['required', 'string', 'max:5000'],
|
||||
];
|
||||
|
||||
$validator = Validator::make($request->all(), $rules);
|
||||
|
||||
$validator->after(function ($v) use ($request) {
|
||||
$min = (int) $request->input('min_score');
|
||||
$max = (int) $request->input('max_score');
|
||||
if ($max < $min) {
|
||||
$v->errors()->add('max_score', 'The max_score field must be greater than or equal to min_score.');
|
||||
}
|
||||
});
|
||||
|
||||
if ($validator->fails()) {
|
||||
return response()->json([
|
||||
'message' => 'Validation failed.',
|
||||
'errors' => $validator->errors(),
|
||||
], 422);
|
||||
}
|
||||
|
||||
$isActive = $this->legacyIsActive($request);
|
||||
|
||||
$payload = [
|
||||
'min_score' => (int) $request->input('min_score'),
|
||||
'max_score' => (int) $request->input('max_score'),
|
||||
'template_text' => (string) $request->input('template_text'),
|
||||
'is_active' => $isActive,
|
||||
];
|
||||
|
||||
if ($hasId) {
|
||||
$this->service->update((int) $id, $payload);
|
||||
} else {
|
||||
$this->service->create($payload);
|
||||
}
|
||||
|
||||
return response()->json(['status' => 'success']);
|
||||
}
|
||||
|
||||
/**
|
||||
* CodeIgniter {@see \App\Controllers\View\AttendanceCommentTemplateController::delete}.
|
||||
*/
|
||||
public function legacyDelete(Request $request): JsonResponse
|
||||
{
|
||||
$id = $request->input('id');
|
||||
if ($id === null || $id === '' || (int) $id <= 0) {
|
||||
return response()->json([
|
||||
'status' => 'error',
|
||||
'message' => 'ID not provided',
|
||||
], 400);
|
||||
}
|
||||
|
||||
$this->service->delete((int) $id);
|
||||
|
||||
return response()->json(['status' => 'success']);
|
||||
}
|
||||
|
||||
private function legacyIsActive(Request $request): bool
|
||||
{
|
||||
$raw = $request->input('is_active');
|
||||
|
||||
return $raw === 'on'
|
||||
|| $raw === 1
|
||||
|| $raw === '1'
|
||||
|| $raw === true
|
||||
|| $raw === 'true';
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
namespace App\Http\Controllers\Api\Attendance;
|
||||
|
||||
use App\Http\Controllers\Api\BaseApiController;
|
||||
use App\Http\Controllers\Api\Core\BaseApiController;
|
||||
use App\Http\Requests\Attendance\LateSlipLogIndexRequest;
|
||||
use App\Http\Resources\Attendance\LateSlipLogCollection;
|
||||
use App\Http\Resources\Attendance\LateSlipLogResource;
|
||||
|
||||
@@ -42,9 +42,14 @@ class StaffAttendanceApiController extends Controller
|
||||
|
||||
public function saveAdmins(SaveAdminAttendanceRequest $request): JsonResponse
|
||||
{
|
||||
$user = auth()->user();
|
||||
if ($user === null) {
|
||||
return response()->json(['message' => 'Unauthorized.'], 401);
|
||||
}
|
||||
|
||||
try {
|
||||
return response()->json(
|
||||
$this->staffAttendanceService->saveAdmins(auth()->user(), $request->validated())
|
||||
$this->staffAttendanceService->saveAdmins($user, $request->validated())
|
||||
);
|
||||
} catch (Throwable $e) {
|
||||
return response()->json(['message' => $e->getMessage()], 422);
|
||||
@@ -53,9 +58,14 @@ class StaffAttendanceApiController extends Controller
|
||||
|
||||
public function saveCell(SaveStaffAttendanceCellRequest $request): JsonResponse
|
||||
{
|
||||
$user = auth()->user();
|
||||
if ($user === null) {
|
||||
return response()->json(['message' => 'Unauthorized.'], 401);
|
||||
}
|
||||
|
||||
try {
|
||||
return response()->json(
|
||||
$this->staffAttendanceService->saveCell(auth()->user(), $request->validated())
|
||||
$this->staffAttendanceService->saveCell($user, $request->validated())
|
||||
);
|
||||
} catch (Throwable $e) {
|
||||
return response()->json(['message' => $e->getMessage()], 422);
|
||||
|
||||
@@ -33,10 +33,15 @@ class TeacherAttendanceApiController extends Controller
|
||||
|
||||
public function form(Request $request): JsonResponse|TeacherAttendanceFormResource
|
||||
{
|
||||
$guard = $this->authenticatedUserIdOrUnauthorized();
|
||||
if ($guard instanceof JsonResponse) {
|
||||
return $guard;
|
||||
}
|
||||
|
||||
try {
|
||||
return new TeacherAttendanceFormResource(
|
||||
$this->queryService->teacherAttendanceFormData(
|
||||
auth()->id(),
|
||||
$guard,
|
||||
(int)$request->query('class_section_id', 0)
|
||||
)
|
||||
);
|
||||
@@ -47,12 +52,30 @@ class TeacherAttendanceApiController extends Controller
|
||||
|
||||
public function submit(TeacherSubmitAttendanceRequest $request): JsonResponse
|
||||
{
|
||||
$user = auth()->user();
|
||||
if ($user === null) {
|
||||
return response()->json(['message' => 'Unauthorized.'], 401);
|
||||
}
|
||||
|
||||
try {
|
||||
return response()->json(
|
||||
$this->attendanceService->submitTeacherAttendance(auth()->user(), $request->validated())
|
||||
$this->attendanceService->submitTeacherAttendance($user, $request->validated())
|
||||
);
|
||||
} catch (Throwable $e) {
|
||||
return response()->json(['message' => $e->getMessage()], 422);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @return int|JsonResponse
|
||||
*/
|
||||
private function authenticatedUserIdOrUnauthorized(): int|JsonResponse
|
||||
{
|
||||
$userId = (int) (auth()->id() ?? 0);
|
||||
if ($userId <= 0) {
|
||||
return response()->json(['message' => 'Unauthorized.'], 401);
|
||||
}
|
||||
|
||||
return $userId;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user