CompanyController.php 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. <?php
  2. /**
  3. * Created by IntelliJ IDEA.
  4. * User: kelyliang
  5. * Date: 2024/3/20
  6. * Time: 下午 02:32
  7. */
  8. namespace App\Http\Controllers\API;
  9. use App\Http\Controllers\Controller;
  10. use App\Http\Requests\API\Company\CreateOrUpdateRequest;
  11. use App\Http\Resources\API\CompanyResource;
  12. use App\Models\Company;
  13. use App\Models\User;
  14. use Illuminate\Http\Request;
  15. use Illuminate\Support\Facades\Auth;
  16. class CompanyController extends Controller
  17. {
  18. public function index(Request $request)
  19. {
  20. if(Auth::user()->super_admin){
  21. $company=Company::query()->filter($request->all())->get();
  22. return CompanyResource::collection($company);
  23. }else{
  24. $company=Auth::user()->company;
  25. return new CompanyResource($company);
  26. }
  27. }
  28. public function store(CreateOrUpdateRequest $request)
  29. {
  30. $company = new Company();
  31. $company->fill([
  32. ...$request->all(),
  33. ]);
  34. $company->save();
  35. return $this->created();
  36. }
  37. public function show(string $id)
  38. {
  39. $companyId=Auth::user()->company->id;
  40. if(empty(Auth::user()->super_admin)){
  41. if($companyId!=$id){
  42. return $this->forbidden("You are not a user under this company");
  43. }
  44. }
  45. $field = Company::query()->findOrFail($id);
  46. return new CompanyResource($field);
  47. }
  48. public function update(Request $request,string $id){
  49. $company = Company::findOrFail($id);
  50. $company->email =$request->email;
  51. $company->save();
  52. return $this->noContent();
  53. }
  54. public function destroy(string $id)
  55. {
  56. $company = Company::findOrFail($id);
  57. $company->delete();
  58. return $this->noContent();
  59. }
  60. }