AssetController.php 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. <?php
  2. namespace App\Http\Controllers\API;
  3. use App\Http\Controllers\Controller;
  4. use App\Http\Requests\API\Asset\CreateOrUpdateRequest;
  5. use App\Http\Resources\API\AssetResource;
  6. use App\Models\Asset;
  7. use Illuminate\Http\Request;
  8. use Illuminate\Support\Facades\Auth;
  9. class AssetController extends Controller
  10. {
  11. /**
  12. * Display a listing of the resource.
  13. */
  14. public function index(Request $request)
  15. {
  16. // $name=$request->input("name");
  17. // $groupId=$request->input("groupId");
  18. // $assets=Asset::allowed()->where('name', 'like', "%{$name}%")
  19. // ->when($groupId,function ($query,$groupId){
  20. // return $query->where('group_id',$groupId);
  21. // })->where("parent_id",0)->with(['children'])
  22. // ->get();
  23. //$assets = Asset::allowed()->filter($request->all())->get();
  24. $assets = Asset::filter($request->all())->where("parent_id", 0)->with(['children'])->simplePaginate();
  25. return AssetResource::collection($assets);
  26. }
  27. /**
  28. * Store a newly created resource in storage.
  29. */
  30. public function store(CreateOrUpdateRequest $request)
  31. {
  32. Asset::create([
  33. ...$request->all(),
  34. 'company_id' => Auth::user()->company_id,
  35. 'whitelist' => $request->whitelist ? sprintf(",%s", implode(',', $request->whitelist)) : null,
  36. 'created_by' => Auth::id(),
  37. ]);
  38. return $this->created();
  39. }
  40. /**
  41. * Display the specified resource.
  42. */
  43. public function show(string $id)
  44. {
  45. $asset = Asset::allowed()->findOrFail($id);
  46. return new AssetResource($asset);
  47. }
  48. /**
  49. * Update the specified resource in storage.
  50. */
  51. public function update(Request $request, string $id)
  52. {
  53. $asset = Asset::allowed()->findOrFail($id);
  54. $asset->update([
  55. ...$request->all(),
  56. 'whitelist' => $request->whitelist ? sprintf(",%s", implode(',', $request->whitelist)) : null,
  57. ]);
  58. return $this->noContent();
  59. }
  60. /**
  61. * Remove the specified resource from storage.
  62. */
  63. public function destroy(string $id)
  64. {
  65. $asset = Asset::allowed()->findOrFail($id);
  66. $asset->delete();
  67. return $this->noContent();
  68. }
  69. }