Files
izyim/app/Http/Controllers/Companies/CompanyController.php
T
2019-02-20 02:44:06 +08:00

68 lines
1.8 KiB
PHP

<?php
namespace App\Http\Controllers\Companies;
use App\Models\Company;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use App\Http\Resources\Company as CompanyResource;
use App\Classes\ControllersLogic\Companies\ListCompanies;
use App\Classes\ControllersLogic\Companies\UpdateCompany;
use App\Classes\ControllersLogic\Companies\CompanyProfile;
use App\Classes\ControllersLogic\Companies\DeleteCompany;
class CompanyController extends Controller
{
/**
* Display a listing of the resource.
*
*/
public function index() {
return (new ListCompanies())->execute();
}
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
*
* @param UpdateCompany $logic
* @return CompanyResource
*/
public function store(Request $request, UpdateCompany $logic): CompanyResource {
return $logic->execute($request);
}
/**
* Display the specified resource.
*
* @param int $id
*
* @return CompanyResource
*/
public function show($id): CompanyResource {
return (new CompanyProfile())->execute($id);
}
/**
* Remove the specified resource from storage.
*
* @param int $id
*
* @return CompanyResource
*/
public function destroy($id): CompanyResource {
return (new DeleteCompany())->execute($id);
}
public function search(Request $request){
// Get company
$companies = Company::where('name', 'LIKE', "%".$request->input('query')."%")
->orWhere('marking', 'LIKE', "%".$request->input('query')."%")->paginate(10);
// Return collection of companies as a resource
return CompanyResource::collection($companies);
}
}