����JFIF��x�x����'
Server IP : 66.29.137.217 / Your IP : 18.116.65.119 Web Server : LiteSpeed System : Linux premium294.web-hosting.com 4.18.0-513.11.1.lve.el8.x86_64 #1 SMP Thu Jan 18 16:21:02 UTC 2024 x86_64 User : gltevjme ( 1095) PHP Version : 7.0.33 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /home/./gltevjme/cbt.bofirm.com/app/Http/Controllers/Admin/ |
Upload File : |
<?php /** * File name: ComprehensionCrudController.php * Last modified: 19/07/21, 12:55 AM * Author: NearCraft - https://codecanyon.net/user/nearcraft * Copyright (c) 2021 */ namespace App\Http\Controllers\Admin; use App\Filters\ComprehensionFilters; use App\Http\Controllers\Controller; use App\Http\Requests\Admin\StoreComprehensionRequest; use App\Http\Requests\Admin\UpdateComprehensionRequest; use App\Models\ComprehensionPassage; use App\Models\Question; use App\Transformers\Admin\ComprehensionTransformer; use Illuminate\Http\Request; use Illuminate\Support\Facades\DB; use Inertia\Inertia; class ComprehensionCrudController extends Controller { public function __construct() { $this->middleware(['role:admin|instructor'])->except('search'); } /** * List all comprehension passages * * @param ComprehensionFilters $filters * @return \Inertia\Response */ public function index(ComprehensionFilters $filters) { return Inertia::render('Admin/Comprehensions', [ 'comprehensions' => function () use($filters) { return fractal(ComprehensionPassage::filter($filters) ->paginate(request()->perPage != null ? request()->perPage : 10), new ComprehensionTransformer())->toArray(); }, ]); } /** * Search comprehension passages api endpoint * * @param Request $request * @return \Illuminate\Http\JsonResponse */ public function search(Request $request) { $query = $request->get('query'); return response()->json([ 'comprehensions' => ComprehensionPassage::select(['id', 'title', 'code']) ->where('is_active', 1) ->where('title', 'like', '%'.$query.'%') ->orWhere('code', 'like', '%'.$query.'%')->limit(20) ->get() ]); } /** * Store a comprehension passage * * @param StoreComprehensionRequest $request * @return \Illuminate\Http\RedirectResponse */ public function store(StoreComprehensionRequest $request) { ComprehensionPassage::create($request->validated()); return redirect()->back()->with('successMessage', 'Comprehension Passage was successfully added!'); } /** * Show a comprehension passage * * @param $id * @return array */ public function show($id) { $comprehension = ComprehensionPassage::findOrFail($id); return fractal($comprehension, new ComprehensionTransformer())->toArray(); } /** * Edit a comprehension passage * * @param $id * @return ComprehensionPassage|ComprehensionPassage[]|\Illuminate\Database\Eloquent\Collection|\Illuminate\Database\Eloquent\Model */ public function edit($id) { return ComprehensionPassage::findOrFail($id); } /** * Update a comprehension passage * * @param UpdateComprehensionRequest $request * @param $id * @return \Illuminate\Http\RedirectResponse */ public function update(UpdateComprehensionRequest $request, $id) { $comprehension = ComprehensionPassage::findOrFail($id); $comprehension->update($request->validated()); return redirect()->back()->with('successMessage', 'Comprehension Passage was successfully updated!'); } /** * Delete a comprehension passage * * @param $id * @return \Illuminate\Http\RedirectResponse */ public function destroy($id) { try { $comprehension = ComprehensionPassage::with('questions:id,comprehension_passage_id')->findOrFail($id); DB::transaction(function () use ($comprehension) { Question::whereIn('id', $comprehension->questions->pluck('id')) ->update([ 'has_attachment' => false, 'attachment_type' => null, 'comprehension_passage_id' => null ]); $comprehension->secureDelete('questions'); }); } catch (\Illuminate\Database\QueryException $e){ return redirect()->back()->with('errorMessage', 'Unable to Delete Comprehension Passage . Remove all associations and Try again!'); } return redirect()->back()->with('successMessage', 'Comprehension Passage was successfully deleted!'); } }