Spamworldpro Mini Shell
Spamworldpro


Server : Apache
System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64
User : corals ( 1002)
PHP Version : 7.4.33
Disable Function : exec,passthru,shell_exec,system
Directory :  /home/corals/job-board.corals.io/Corals/modules/Directory/Http/Controllers/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /home/corals/job-board.corals.io/Corals/modules/Directory/Http/Controllers/ClaimController.php
<?php

namespace Corals\Modules\Directory\Http\Controllers;

use Corals\Foundation\Http\Controllers\BaseController;
use Corals\Modules\Directory\Models\Listing;
use Corals\Modules\Directory\Models\Claim;
use Corals\Modules\Directory\Http\Requests\ClaimRequest;
use Corals\Modules\Directory\DataTables\ClaimsDataTable;
use Illuminate\Http\Request;

class ClaimController extends BaseController
{
    protected $excludedRequestParams = ['claim_file'];

    public function __construct()
    {
        $this->resource_url = config('directory.models.listing.resource_url');

        $this->title = 'Directory::module.claim.title';
        $this->title_singular = 'Directory::module.claim.title_singular';

        parent::__construct();
    }

    /**
     * @param ClaimRequest $request
     * @param ClaimsDataTable $dataTable
     * @return mixed
     */
    public function index(ClaimRequest $request, ClaimsDataTable $dataTable)
    {
        return $dataTable->render('Directory::claims.index');
    }

    public function store(ClaimRequest $request, Listing $listing)
    {
        try {

            $data = $request->except($this->excludedRequestParams);

            $data['created_by'] = user()->id;
            $data['listing_id'] = $listing->id;

            $claim = Claim::create($data);

            if ($request->hasFile('claim_file')) {
                $claim->addMedia($request->file('claim_file'))
                    ->withCustomProperties(['root' => 'user_' . user()->hashed_id])
                    ->toMediaCollection($claim->mediaCollectionName);
            }

            event('notifications.directory.listing_claim', ['listing' => $listing, 'user' => $claim->user, 'claim' => $claim]);

            $message = ['level' => 'success', 'message' => trans('Directory::messages.success.listing_claim', ['item' => $this->title_singular])];
        } catch (\Exception $exception) {
            log_exception($exception, Claim::class, 'store');
            $message = ['level' => 'error', 'message' => $exception->getMessage()];
        }

        return response()->json($message);

    }

    public function show(Claim $claim)
    {
        return view('Directory::claims.show')->with(compact('claim'));
    }

    public function declineReasons(Claim $claim)
    {
        return view('Directory::claims.decline')->with(compact('claim'));
    }

    public function toggleStatus(Request $request, Claim $claim, $status)
    {
        try {
            if (user()->can('updateStatus', [$claim, $status])) {
                $claim->update([
                    'status' => $status,
                ]);
            } else {
                abort(403);
            }

            if ($status == 'approved') {
                $claim->listing->update([
                    'user_id' => $claim->created_by
                ]);

                event('notifications.directory.claim_approved_status', [
                    'claim' => $claim,
                    'user' => $claim->user
                ]);
            } elseif ($status == 'declined') {
                $reasons = $request->get('reasons') ?? null;

                $claim->listing->update([
                    'user_id' => null
                ]);

                event('notifications.directory.claim_decline_status', [
                    'claim' => $claim,
                    'user' => $claim->user,
                    'reasons' => $reasons,
                ]);
            }

            $message = ['level' => 'success', 'message' => trans('Directory::messages.success.claim_status', ['item' => $this->title_singular])];
        } catch (\Exception $exception) {
            log_exception($exception, Claim::class, 'store');
            $message = ['level' => 'error', 'message' => $exception->getMessage()];
        }

        return response()->json($message);
    }

    /**
     * @param ClaimRequest $request
     * @param Claim $claim
     * @return \Illuminate\Http\JsonResponse
     */

    public function destroy(ClaimRequest $request, Claim $claim)
    {
        try {
            $claim->delete();

            $message = ['level' => 'success', 'message' => trans('Corals::messages.success.deleted', ['item' => $this->title_singular])];
        } catch (\Exception $exception) {
            log_exception($exception, Claim::class, 'destroy');
            $message = ['level' => 'error', 'message' => $exception->getMessage()];
        }

        return response()->json($message);
    }
}

Spamworldpro Mini