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/clinic.corals.io/app/Http/Controllers/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /home/corals/clinic.corals.io/app/Http/Controllers/ServiceController.php
<?php

namespace App\Http\Controllers;

use App\DataTables\ServiceDataTable;
use App\Models\Appointment;
use App\Models\Service;
use Exception;
use Illuminate\Contracts\Foundation\Application;
use Illuminate\Contracts\View\Factory;
use Illuminate\Contracts\View\View;
use Illuminate\Database\Query\Builder;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\RedirectResponse;
use Illuminate\Http\Request;
use App\Http\Requests\CreateServicesRequest;
use App\Http\Requests\UpdateServicesRequest;
use App\Repositories\ServicesRepository;
use Laracasts\Flash\Flash;
use Illuminate\Routing\Redirector;
use Yajra\DataTables\DataTables;
use function Symfony\Component\String\s;

class ServiceController extends AppBaseController
{
    /** @var  ServicesRepository */
    private $servicesRepository;

    public function __construct(ServicesRepository $servicesRepo)
    {
        $this->servicesRepository = $servicesRepo;
    }

    /**
     * @param  Request  $request
     *
     * @return Application|Factory|View
     * @throws Exception
     *
     */
    public function index(Request $request)
    {
        if ($request->ajax()) {
            return Datatables::of((new ServiceDataTable())->get($request->only('status')))->make(true);
        }
        $status = Service::STATUS;

        return view('services.index',compact('status'));
    }

    /**
     * Show the form for creating a new Services.
     *
     * @return Application|Factory|View
     */
    public function create()
    {
        $data = $this->servicesRepository->prepareData();

        return view('services.create', compact('data'));
    }

    /**
     * Store a newly created Services in storage.
     *
     * @param  CreateServicesRequest  $request
     *
     * @return Application|RedirectResponse|Redirector
     */
    public function store(CreateServicesRequest $request)
    {
        $input = $request->all();
        $this->servicesRepository->store($input);

        Flash::success('Service created successfully.');

        return redirect(route('services.index'));
    }

    /**
     * Show the form for editing the specified Services.
     *
     * @param  Service  $service
     * @return Application|Factory|View
     */
    public function edit(Service $service)
    {
        $data = $this->servicesRepository->prepareData();
        $selectedDoctor = $service->serviceDoctors()->pluck('doctor_id')->toArray();

        return view('services.edit', compact('service', 'data', 'selectedDoctor'));
    }

    /**
     * Update the specified Services in storage.
     *
     * @param  UpdateServicesRequest  $request
     * @param  Service  $service
     * @return Application|Redirector|RedirectResponse
     */
    public function update(UpdateServicesRequest $request, Service $service)
    {
        $this->servicesRepository->update($request->all(), $service);

        Flash::success('Service updated successfully.');

        return redirect(route('services.index'));
    }

    /**
     * Remove the specified Services from storage.
     *
     * @param  Service  $service
     * @return JsonResponse
     */
    public function destroy(Service $service): JsonResponse
    {
        $checkRecord = Appointment::whereServiceId($service->id)->exists();
        
        if ($checkRecord) {
            return $this->sendError('Service used somewhere else.');
        }
        $service->delete();

        return $this->sendSuccess('Service deleted successfully.');
    }

    public function getService(Request $request)
    {
        $doctor_id = $request->doctorId;
        $service = Service::with('serviceDoctors')->whereHas('serviceDoctors', function ($q) use ($doctor_id) {
            $q->where('doctor_id', $doctor_id)->whereStatus(Service::ACTIVE);
        })->get();

        return $this->sendResponse($service, 'Retrieved successfully.');
    }

    /**
     * @param  Request  $request
     *
     * @return JsonResponse
     */
    public function getCharge(Request $request)
    {
        $chargeId = $request->chargeId;
        $charge = Service::find($chargeId);

        return $this->sendResponse($charge, 'Retrieved successfully.');
    }

    /**
     * @param  Request  $request
     * @return mixed
     */
    public function changeServiceStatus(Request $request)
    {
        $status = Service::findOrFail($request->id);
        $status->update(['status' => ! $status->status]);

        return $this->sendResponse($status, 'Status updated successfully.');
    }
}

Spamworldpro Mini