MIF_E31231392/app/Http/Controllers/BookingController.php

156 lines
3.8 KiB
PHP

<?php
namespace App\Http\Controllers;
use App\Models\BookingModel;
use Generator;
use Illuminate\Http\Request;
class BookingController extends Controller
{
/**
* Getch Data Booking
*/
public function getchData() {
$data = BookingModel::get();
return response()->json([
'status' => true,
'data' => $data->toArray()
]);
}
/**
* Random Char and Number
*/
public function generateCode() {
$kode_unik = '';
$charABC = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';
for($i = 0; $i < 6; $i++) {
$randNum = random_int(0, 1);
if($randNum == 0) {
$kode_unik .= $charABC[random_int(0, strlen($charABC) - 1)];
} else if($randNum == 1) {
$kode_unik .= str(random_int(0, 9));
}
}
$dataAvl = BookingModel::find($kode_unik, 'kode_unik');
if($dataAvl != null) {
$this->generateCode();
} else {
return $kode_unik;
}
}
/**
* Display a listing of the resource.
*/
public function index()
{
return view('admin.pages.data_booking.index');
}
/**
* Show the form for creating a new resource.
*/
public function create()
{
//
}
/**
* Store a newly created resource in storage.
*/
public function store(Request $request)
{
try {
$request->validate([
'nama_lengkap' => ['required', 'string'],
'email' => ['required', 'string'],
'no_telp' => ['required', 'string'],
'tgl_booking' => ['required', 'string'],
'deskripsi_tambahan' => ['required', 'string']
]);
$kode_unik = $this->generateCode();
BookingModel::create([
'nama_lengkap' => $request->nama_lengkap,
'email' => $request->email,
'no_telp' => $request->no_telp,
'tgl_booking' => $request->tgl_booking,
'deskripsi_tambahan' => $request->deskripsi_tambahan,
'kode_unik' => $kode_unik
]);
return response()->json([
'status' => true,
'msg' => 'Booking success!'
]);
} catch(\Exception $e) {
return response()->json([
'status' => false,
'msg' => $e->getMessage()
]);
}
}
/**
* Display the specified resource.
*/
public function show(string $id)
{
$data = BookingModel::where('id_booking', $id)->first();
return response()->json([
'status' => true,
'data' => $data
]);
}
/**
* Show the form for editing the specified resource.
*/
public function edit(string $id)
{
$data = BookingModel::where('id_booking', $id)->first();
return response()->json([
'status' => true,
'data' => $data
]);
}
/**
* Update the specified resource in storage.
*/
public function update(Request $request, string $id)
{
$request->validate([
'status_tes' => ['required']
]);
BookingModel::where('id_booking', $id)->update([
'status_tes' => $request->status_tes
]);
return response()->json([
'status' => true,
'msg' => 'Data berhasil diedit'
]);
}
/**
* Remove the specified resource from storage.
*/
public function destroy(string $id)
{
BookingModel::where('id_booking', $id)->delete();
return response()->json([
'status' => true,
'msg' => 'Data berhasil dihapus'
]);
}
}