interaction.php 1.3 KB

1234567891011121314151617181920212223242526272829303132
  1. <?php
  2. /*
  3. |--------------------------------------------------------------------------
  4. | v3 · interaction —— 用户对内容的互动
  5. |--------------------------------------------------------------------------
  6. |
  7. | 由 routes/api.php 的 v3 组 require 进来,前缀已在那边加好。
  8. |
  9. | 将来 discussion、notification、tag 也落在这个文件。
  10. |
  11. */
  12. use App\Http\Controllers\V3\MeReactionController;
  13. use App\Http\Controllers\V3\ReactionController;
  14. use App\Http\Controllers\V3\ReactionTallyController;
  15. use Illuminate\Support\Facades\Route;
  16. // reactions(点赞/收藏/书签/关注/下载记录)。资源改名是 CLAUDE.md
  17. // 「已登记的改名例外」里的唯一一条,底层仍是 v2 的 likes 表。
  18. // tally 要注册在 apiResource 之前:将来给 reactions 补上 show 之后,
  19. // {reaction} 会把 tally 当成 uid 吃掉
  20. Route::get('reactions/tally', [ReactionTallyController::class, 'index']);
  21. // 公共只读:某个 target 下的 reactions
  22. Route::apiResource('reactions', ReactionController::class)->only(['index']);
  23. // 当前用户自己的 reactions:全线登录,由 auth.v3 中间件在进控制器前挡掉
  24. Route::prefix('me')->as('me.')->middleware('auth.v3')->group(function () {
  25. Route::apiResource('reactions', MeReactionController::class)->only(['index', 'store', 'destroy']);
  26. });