![]() 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/medad.corals.io/Corals/modules/Medad/Http/Controllers/API/ |
<?php namespace Corals\Modules\Medad\Http\Controllers\API; use Corals\Foundation\Http\Controllers\APIBaseController; use Corals\Modules\Medad\DataTables\CompaniesDataTable; use Corals\Modules\Medad\Facades\Medad; use Corals\Modules\Medad\Http\Requests\CompanyRequest; use Corals\Modules\Medad\Models\Company; use Corals\Modules\Medad\Services\CompanyService; use Corals\Modules\Medad\Transformers\API\CompanyPresenter; use Illuminate\Http\JsonResponse; use Illuminate\Http\Request; class CompaniesController extends APIBaseController { protected $companyService; /** * CompaniesController constructor. * @param CompanyService $companyService * @throws \Exception */ public function __construct(CompanyService $companyService) { $this->companyService = $companyService; $this->companyService->setPresenter(new CompanyPresenter()); parent::__construct(); } /** * @param CompanyRequest $request * @param CompaniesDataTable $dataTable * @return mixed * @throws \Exception */ public function index(CompanyRequest $request, CompaniesDataTable $dataTable) { $companies = $dataTable->query(new Company()); return $this->companyService->index($companies, $dataTable); } /** * @param CompanyRequest $request * @return JsonResponse */ public function store(CompanyRequest $request) { try { $company = $this->companyService->store($request, Company::class); return apiResponse($this->companyService->getModelDetails(), trans('Corals::messages.success.created', ['item' => $company->name])); } catch (\Exception $exception) { return apiExceptionResponse($exception); } } /** * @param CompanyRequest $request * @param Company $company * @return JsonResponse */ public function show(CompanyRequest $request, Company $company) { try { return apiResponse($this->companyService->getModelDetails($company)); } catch (\Exception $exception) { return apiExceptionResponse($exception); } } /** * @param CompanyRequest $request * @param Company $company * @return JsonResponse */ public function update(CompanyRequest $request, Company $company) { try { $this->companyService->update($request, $company); return apiResponse($this->companyService->getModelDetails(), trans('Corals::messages.success.updated', ['item' => $company->name])); } catch (\Exception $exception) { return apiExceptionResponse($exception); } } /** * @param CompanyRequest $request * @param Company $company * @return JsonResponse */ public function destroy(CompanyRequest $request, Company $company) { try { $this->companyService->destroy($request, $company); return apiResponse([], trans('Corals::messages.success.deleted', ['item' => $company->name])); } catch (\Exception $exception) { return apiExceptionResponse($exception); } } /** * @param CompanyRequest $request * @param Company $company * @param $rolesType * @return JsonResponse */ public function getUsersByRole(CompanyRequest $request, Company $company, $role_name) { try { return apiResponse(Medad::getCompanyUsers($role_name, $company)); } catch (\Exception $exception) { return apiExceptionResponse($exception); } } /** * @return JsonResponse */ public function getAdmins() { try { return apiResponse(Medad::getCompanyUsers('medad_company_admin')); } catch (\Exception $exception) { return apiExceptionResponse($exception); } } /** * @return JsonResponse */ public function submitActingCompanyType(Request $request) { $this->validate($request, [ 'type' => 'required', ]); $token = user()->token(); $properties = json_decode($token->properties ?? '{}', true) ?? []; $properties['acting_company_type'] = $request->type; $token->properties = $properties; $token->save(); return apiResponse($token); } }