2
0

RecentController.php 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. <?php
  2. namespace App\Http\Controllers;
  3. use App\Models\Recent;
  4. use Illuminate\Http\Request;
  5. use App\Http\Resources\RecentResource;
  6. use App\Http\Api\AuthApi;
  7. use Illuminate\Support\Str;
  8. class RecentController extends Controller
  9. {
  10. /**
  11. * Display a listing of the resource.
  12. *
  13. * @return \Illuminate\Http\Response
  14. */
  15. public function index(Request $request)
  16. {
  17. //
  18. switch ($request->view) {
  19. case 'user':
  20. $table = Recent::where('user_uid', $request->input('id'));
  21. break;
  22. default:
  23. return $this->error('known view');
  24. break;
  25. }
  26. if ($request->has('type')) {
  27. $table->where('type', $request->input('type'));
  28. }
  29. $table->orderBy($request->input('order', 'updated_at'), $request->input('dir', 'desc'));
  30. $count = $table->count();
  31. $table->skip($request->input("offset", 0))
  32. ->take($request->input('limit', 1000));
  33. $result = $table->get();
  34. return $this->ok(["rows" => RecentResource::collection($result), "count" => $count]);
  35. }
  36. /**
  37. * Store a newly created resource in storage.
  38. *
  39. * @param \Illuminate\Http\Request $request
  40. * @return \Illuminate\Http\Response
  41. */
  42. public function store(Request $request)
  43. {
  44. $user = AuthApi::current($request);
  45. if (!$user) {
  46. return $this->error(__('auth.failed'), [], 401);
  47. }
  48. $validated = $request->validate([
  49. 'type' => 'required',
  50. 'article_id' => 'required',
  51. ]);
  52. $row = Recent::firstOrNew([
  53. "type" => $request->input("type"),
  54. "article_id" => $request->input("article_id"),
  55. "user_uid" => $user['user_uid'],
  56. ], [
  57. "id" => Str::uuid(),
  58. ]);
  59. $row->param = $request->input("param", null);
  60. $row->save();
  61. return $this->ok(new RecentResource($row));
  62. }
  63. /**
  64. * Display the specified resource.
  65. *
  66. * @param \App\Models\Recent $recent
  67. * @return \Illuminate\Http\Response
  68. */
  69. public function show(Recent $recent)
  70. {
  71. //
  72. return $this->ok(new RecentResource($recent));
  73. }
  74. /**
  75. * Update the specified resource in storage.
  76. *
  77. * @param \Illuminate\Http\Request $request
  78. * @param \App\Models\Recent $recent
  79. * @return \Illuminate\Http\Response
  80. */
  81. public function update(Request $request, Recent $recent)
  82. {
  83. //
  84. }
  85. /**
  86. * Remove the specified resource from storage.
  87. *
  88. * @param \App\Models\Recent $recent
  89. * @return \Illuminate\Http\Response
  90. */
  91. public function destroy(Recent $recent)
  92. {
  93. //
  94. }
  95. }