AssetController.php 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  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. })
  22. ->get();
  23. //$assets = Asset::allowed()->filter($request->all())->get();
  24. return AssetResource::collection($assets);
  25. }
  26. /**
  27. * Store a newly created resource in storage.
  28. */
  29. public function store(CreateOrUpdateRequest $request)
  30. {
  31. Asset::create([
  32. ...$request->all(),
  33. 'company_id' => Auth::user()->company_id,
  34. 'whitelist' => $request->whitelist ? sprintf(",%s", implode(',', $request->whitelist)) : null,
  35. 'created_by' => Auth::id(),
  36. ]);
  37. return $this->created();
  38. }
  39. /**
  40. * Display the specified resource.
  41. */
  42. public function show(string $id)
  43. {
  44. $asset = Asset::allowed()->findOrFail($id);
  45. return new AssetResource($asset);
  46. }
  47. /**
  48. * Update the specified resource in storage.
  49. */
  50. public function update(Request $request, string $id)
  51. {
  52. $asset = Asset::allowed()->findOrFail($id);
  53. $asset->update([
  54. ...$request->all(),
  55. 'whitelist' => $request->whitelist ? sprintf(",%s", implode(',', $request->whitelist)) : null,
  56. ]);
  57. return $this->noContent();
  58. }
  59. /**
  60. * Remove the specified resource from storage.
  61. */
  62. public function destroy(string $id)
  63. {
  64. $asset = Asset::allowed()->findOrFail($id);
  65. $asset->delete();
  66. return $this->noContent();
  67. }
  68. }