Cetaklabel/Http/Controllers/CardboardController.php

169 lines
5.5 KiB
PHP

<?php
namespace Modules\Cetaklabel\Http\Controllers;
use App\Http\Controllers\Controller;
use Exception;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Modules\Cetaklabel\DataTables\CardboardDataTable;
use Modules\Cetaklabel\Entities\Cardboard;
use Modules\Cetaklabel\Entities\Directorat;
use Modules\Cetaklabel\Http\Requests\Cardboard\StoreCardboardRequest;
use Modules\Cetaklabel\Http\Requests\Cardboard\UpdateCardboardRequest;
class CardboardController extends Controller
{
public $user;
public function __construct()
{
$this->middleware(function ($request, $next) {
$this->user = Auth::guard('web')->user();
return $next($request);
});
addVendor('chained-select');
}
/**
* Display a listing of the Cardboards.
*
* @param \App\DataTables\CardboardDataTable $dataTable
*
* @return mixed
*/
public function index(CardboardDataTable $dataTable, Request $request)
{
if (is_null($this->user) || !$this->user->can('document.read')) {
abort(403, 'Sorry !! You are Unauthorized to view any document data !');
}
$directorats = Directorat::all();
return $dataTable->render('cetaklabel::app.cardboard.index', compact('directorats'));
}
/**
* Store a newly created Cardboard in storage.
*
* @param \App\Http\Requests\StoreCardboardRequest $request
*
* @return mixed
*/
public function store(StoreCardboardRequest $request)
{
if (is_null($this->user) || !$this->user->can('document.create')) {
abort(403, 'Sorry !! You are Unauthorized to create any document data !');
}
// Validate the request...
$validated = $request->validated();
// Store the Cardboard...
if ($validated) {
try {
Cardboard::create($validated);
echo json_encode(['status' => 'success', 'message' => 'Cardboard created successfully.']);
} catch (Exception $e) {
echo json_encode(['status' => 'error', 'message' => 'Cardboard created failed.']);
}
return;
}
echo json_encode(['status' => 'error', 'message' => 'Cardboard created failed.']);
}
/**
* Show the form for creating a new Cardboard.
*/
public function create()
{
if (is_null($this->user) || !$this->user->can('document.create')) {
abort(403, 'Sorry !! You are Unauthorized to create any document data !');
}
abort(404);
}
/**
* Display the specified Cardboard.
*
* @param \Modules\Cetaklabel\Entities\Cardboard $cardboard
*/
public function show(CardboardDataTable $dataTable, Request $request)
{
if (is_null($this->user) || !$this->user->can('document.read')) {
abort(403, 'Sorry !! You are Unauthorized to view any document data !');
}
return $dataTable->render('cetaklabel::app.cardboard-detail.index');
}
/**
* Show the form for editing the specified Cardboard.
*
* @param $id
*/
public function edit($id)
{
if (is_null($this->user) || !$this->user->can('document.update')) {
abort(403, 'Sorry !! You are Unauthorized to update any document data !');
}
$cardboard = Cardboard::find($id);
echo json_encode($cardboard);
}
/**
* Update the specified Cardboard in storage.
*
* @param \App\Http\Requests\UpdateCardboardRequest $request
* @param \Modules\Cetaklabel\Entities\Cardboard $cardboard
*
* @return mixed
*/
public function update(UpdateCardboardRequest $request, Cardboard $cardboard)
{
if (is_null($this->user) || !$this->user->can('document.update')) {
abort(403, 'Sorry !! You are Unauthorized to update any document data !');
}
// Validate the request...
$validated = $request->validated();
// Update the Cardboard...
if ($validated) {
try {
$cardboard->update($validated);
echo json_encode(['status' => 'success', 'message' => 'Cardboard updated successfully.']);
} catch (Exception $e) {
echo json_encode(['status' => 'error', 'message' => 'Cardboard updated failed.']);
}
return;
}
echo json_encode(['status' => 'error', 'message' => 'Cardboard updated failed.']);
}
/**
* Remove the specified Cardboard from storage.
*
* @param \Modules\Cetaklabel\Entities\Cardboard $cardboard
*
* @return void
*/
public function destroy(Cardboard $cardboard)
{
if (is_null($this->user) || !$this->user->can('document.delete')) {
abort(403, 'Sorry !! You are Unauthorized to delete any document data !');
}
$cardboard->delete();
echo json_encode(['status' => 'success', 'message' => 'Cardboard deleted successfully.']);
}
}