PlanController.php 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. <?php
  2. namespace App\Http\Controllers\API;
  3. use App\Http\Controllers\Controller;
  4. use App\Http\Requests\API\Plan\CreateOrUpdateRequest;
  5. use App\Http\Resources\API\PlanResource;
  6. use App\Models\Plan;
  7. use Illuminate\Http\Request;
  8. use Illuminate\Support\Facades\Auth;
  9. class PlanController extends Controller
  10. {
  11. /**
  12. * Display a listing of the resource.
  13. */
  14. public function index(Request $request)
  15. {
  16. $plans = Plan::filter($request->all())->simplePaginate();
  17. return PlanResource::collection($plans);
  18. }
  19. /**
  20. * Store a newly created resource in storage.
  21. */
  22. public function store(CreateOrUpdateRequest $request)
  23. {
  24. $plan = new Plan();
  25. $plan->mergeFillable([
  26. 'company_id'
  27. ]);
  28. $plan->fill([
  29. ...$request->all(),
  30. 'company_id' => Auth::user()->company_id,
  31. ]);
  32. $plan->save();
  33. return $this->created();
  34. }
  35. /**
  36. * Display the specified resource.
  37. */
  38. public function show(string $id)
  39. {
  40. $plan = Plan::findOrFail($id);
  41. return new PlanResource($plan);
  42. }
  43. /**
  44. * Update the specified resource in storage.
  45. */
  46. public function update(CreateOrUpdateRequest $request, string $id)
  47. {
  48. $plan = Plan::findOrFail($id);
  49. $plan->fill($request->all());
  50. $plan->save();
  51. return $this->noContent();
  52. }
  53. /**
  54. * Remove the specified resource from storage.
  55. */
  56. public function destroy(string $id)
  57. {
  58. $plan = Plan::findOrFail($id);
  59. $plan->delete();
  60. return $this->noContent();
  61. }
  62. }