SMK_Kelulusan/app/Http/Controllers/SiswaController.php
Gregorio Chiko Putra 5839165531 Improving view
2019-05-15 16:16:21 +07:00

70 lines
1.9 KiB
PHP

<?php
namespace App\Http\Controllers;
use App\Siswa;
use App\AccessLog;
use Illuminate\Support\Facades\Validator;
use Carbon\Carbon;
use Illuminate\Http\Request;
class SiswaController extends Controller
{
/**
* Handle the incoming request.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function __invoke(Request $request)
{
/*
* Validate user inputs
*
*/
Validator::make($request->all(), [
'nisn' => 'required|regex:/^[0-9]+$/',
'tanggalLahir' => 'required|regex:/^[0-9]+$/',
], [
'required' => 'Kolom :attribute harus diisi.',
'regex' => 'Kolom :attribute tidak sesuai.',
])->validate();
/*
* Look for the given inputs in the resource
*
*/
try {
$tanggalLahir = Carbon::parse($request->tanggalLahir)->format('Y-m-d');
} catch(Exception $e) {
return response()->json([
'message' => 'The given data was invalid.',
'errors' => [
'tanggalLahir' => ['Kolom tanggal lahir tidak sesuai.'],
]
], 422);
}
$siswa = Siswa::where('nisn', $request->nisn)
->where('tanggal_lahir', $tanggalLahir)
->with($request->with)
->first();
/*
* Redirect with error if not found
*
*/
if (!$siswa || $siswa == null) {
return response()->json(['errors' => ['siswa' => ['Siswa tidak ditemukan.']]], 404);
}
/*
* Write a new access log
*
*/
AccessLog::create(['siswa_id' => $siswa->id, 'src' => $request->src]);
return $siswa;
}
}