api.php 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. <?php
  2. use Illuminate\Http\Request;
  3. use Illuminate\Support\Facades\Route;
  4. use Illuminate\Support\Facades\DB;
  5. use App\Http\Controllers\ApplicationController;
  6. use App\Http\Controllers\API\UserController;
  7. use App\Http\Controllers\CheckInTableController;
  8. use App\Http\Controllers\FooController;
  9. use App\Http\Controllers\MaaUserController;
  10. use App\Http\Controllers\MessageController;
  11. use App\Models\CheckInTable;
  12. use App\Models\User;
  13. use Illuminate\Support\Facades\Hash;
  14. /*
  15. |--------------------------------------------------------------------------
  16. | API Routes
  17. |--------------------------------------------------------------------------
  18. |
  19. | Here is where you can register API routes for your application. These
  20. | routes are loaded by the RouteServiceProvider within a group which
  21. | is assigned the "api" middleware group. Enjoy building your API!
  22. |
  23. */
  24. Route::middleware('auth:sanctum')->get('/user', function (Request $request) {
  25. $user = $request->user();
  26. $islogin = $user->tokenCan('update');
  27. $test = $islogin ? 'true' : 'false';
  28. return $user;
  29. });
  30. Route::post('/login', function (Request $request) {
  31. $data = $request->validate([
  32. 'email' => 'required|email',
  33. 'password' => 'required'
  34. ]);
  35. $user = User::where('email', $request->email)->first();
  36. if (!$user || !Hash::check($request->password, $user->password)) {
  37. return response([
  38. 'message' => ['These credentials do not match our records.']
  39. ], 404);
  40. }
  41. $token = $user->createToken('test-token', [$user->role])->plainTextToken;
  42. $response = [
  43. 'user' => JSON_ENCODE($user, JSON_UNESCAPED_UNICODE),
  44. 'token' => $token,
  45. ];
  46. return response($response, 201);
  47. });
  48. Route::post('/logout', function (Request $request) {
  49. $user = $request->user();
  50. $user->tokens()->delete();
  51. return $user;
  52. })->middleware(['auth:sanctum']);
  53. Route::post('/refresh', function (Request $request) {
  54. $user = $request->user();
  55. $user->tokens()->delete();
  56. $token = $user->createToken('test-token', ['uploader', 'tester'])->plainTextToken;
  57. $response = [
  58. 'user' => $user,
  59. 'token' => $token,
  60. ];
  61. return response($response, 201);
  62. })->middleware(['auth:sanctum']);
  63. Route::middleware('auth:sanctum')->group(function () {
  64. //
  65. Route::post('/foo/create', [FooController::class, 'create']);
  66. Route::post('/foo/store', [FooController::class, 'store']);
  67. Route::post('/foo/update', [FooController::class, 'update']);
  68. });
  69. Route::post('/foo', [FooController::class, 'index'])->middleware(['auth:sanctum']);
  70. Route::get('/foo/show', [FooController::class, 'show'])->middleware(['auth:sanctum', 'abilities:User']);
  71. /*Message Borad */
  72. Route::post('/message/index', [MessageController::class, 'index']);
  73. Route::post('/message/recent', [MessageController::class, 'recent']);
  74. Route::post('/message/detail', [MessageController::class, 'show']);
  75. Route::post('/message/count', [MessageController::class, 'count']);
  76. Route::post('/message/user', [UserController::class, 'index']);
  77. Route::middleware('auth:sanctum')->group(function () {
  78. Route::post('/message/storeComment', [MessageController::class, 'storeComment']);
  79. Route::post('/message/storeMessage', [MessageController::class, 'store']);
  80. Route::post('/message/editMessage', [MessageController::class, 'update']);
  81. Route::post('/message/deleteMessage', [MessageController::class, 'destroy']);
  82. });
  83. Route::middleware(['auth:sanctum', 'abilities:Admin'])->group(function () {
  84. });
  85. /* lottery */
  86. Route::post('/lottery/show', [MaaUserController::class, 'show']);
  87. Route::get('/lottery/list', [MaaUserController::class, 'index']);
  88. // Route::post('/lottery/checkin', [CheckInTableController::class, 'store']);
  89. Route::get('/lottery/checkin/{message}', [CheckInTableController::class, 'store']);