api.php 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129
  1. <?php
  2. use App\Http\Controllers\ActivityController;
  3. use Illuminate\Http\Request;
  4. use Illuminate\Support\Facades\Route;
  5. use Illuminate\Support\Facades\DB;
  6. use App\Http\Controllers\ApplicationController;
  7. use App\Http\Controllers\API\UserController;
  8. use App\Http\Controllers\TemplateController;
  9. use App\Models\User;
  10. use Illuminate\Support\Facades\Hash;
  11. use App\Http\Controllers\PrizeController;
  12. use App\Http\Controllers\CheckInController;
  13. use App\Http\Controllers\RecipientsController;
  14. use App\Http\Controllers\DepartmentController;
  15. use App\Http\Controllers\DrawController;
  16. /*
  17. |--------------------------------------------------------------------------
  18. | API Routes
  19. |--------------------------------------------------------------------------
  20. |
  21. | Here is where you can register API routes for your application. These
  22. | routes are loaded by the RouteServiceProvider within a group which
  23. | is assigned the "api" middleware group. Enjoy building your API!
  24. |
  25. */
  26. Route::middleware('auth:sanctum')->get('/user', function (Request $request) {
  27. $user = $request->user();
  28. $islogin = $user->tokenCan('update');
  29. $test = $islogin ? 'true' : 'false';
  30. return $user;
  31. });
  32. Route::post('/login', function (Request $request) {
  33. $data = $request->validate([
  34. 'account' => 'required',
  35. 'password' => 'required'
  36. ]);
  37. $user = User::where('account', $request->account)->first();
  38. if (!$user || !Hash::check($request->password, $user->password)) {
  39. return response([
  40. 'message' => ['These credentials do not match our records.']
  41. ], 404);
  42. }
  43. $token = $user->createToken('test-token', [$user->role])->plainTextToken;
  44. $response = [
  45. 'user' => JSON_ENCODE($user, JSON_UNESCAPED_UNICODE),
  46. 'token' => $token,
  47. ];
  48. return response($response, 201);
  49. });
  50. Route::post('/logout', function (Request $request) {
  51. $user = $request->user();
  52. $user->tokens()->delete();
  53. return $user;
  54. })->middleware(['auth:sanctum']);
  55. Route::post('/refresh', function (Request $request) {
  56. $user = $request->user();
  57. $user->tokens()->delete();
  58. $token = $user->createToken('test-token', ['uploader', 'tester'])->plainTextToken;
  59. $response = [
  60. 'user' => $user,
  61. 'token' => $token,
  62. ];
  63. return response($response, 201);
  64. })->middleware(['auth:sanctum']);
  65. /* Template API */
  66. Route::post('/index', [TemplateController::class, 'index']);
  67. Route::middleware('auth:sanctum')->group(function () {
  68. });
  69. Route::middleware(['auth:sanctum', 'abilities:Admin'])->group(function () {
  70. Route::post('/activity/list', [ActivityController::class, 'index']);
  71. Route::post('/activity/store', [ActivityController::class, 'store']);
  72. Route::post('/activity/update', [ActivityController::class, 'update']);
  73. Route::post('/activity/sql', [ActivityController::class, 'sql']);
  74. Route::post('/activity/claim', [ActivityController::class, 'claim']);
  75. Route::post('/activity/isClaimed', [RecipientsController::class, 'isClaimed']);
  76. Route::post('/activity/uploadFile', [ActivityController::class, 'uploadFile']);
  77. Route::post('/activity/getActivity', [ActivityController::class, 'get_activity_by_id']);
  78. Route::post('/activity/show', [ActivityController::class, 'show']);
  79. // CheckIn
  80. Route::post('/check_in/update', [CheckInController::class, 'update']);
  81. Route::post('/check_in/check_out', [CheckInController::class, 'check_out']);
  82. Route::post('/check_in/draw', [CheckInController::class, 'draw_user_when_check_in']);
  83. // Draw
  84. Route::post('/draw/draw_user', [DrawController::class, 'draw_user_by_region']);
  85. // Prize
  86. Route::post('/prize/draw', [PrizeController::class, 'draw']);
  87. Route::post('/prize/drawPatch', [PrizeController::class, 'draw_patch']);
  88. // Recipients
  89. Route::post('/recipients/store', [RecipientsController::class, 'store']);
  90. Route::post('/recipients/storePatch', [RecipientsController::class, 'store_patch']);
  91. Route::post('/user/show', [UserController::class, 'show']);
  92. });
  93. Route::post('/user/index', [UserController::class, 'index']);
  94. Route::post('/department/index', [DepartmentController::class, 'index']);
  95. Route::post('/prize/index', [PrizeController::class, 'index']);
  96. Route::post('/check_in/index_by_activity', [CheckInController::class, 'index_by_activity']);
  97. Route::post('/prize/index_by_activity', [PrizeController::class, 'index_by_activity']);
  98. Route::post('/recipients/index', [RecipientsController::class, 'index']);
  99. Route::post('/recipients/index_by_activity', [RecipientsController::class, 'index_by_activity']);
  100. Route::post('/prize/prizeDrawable', [PrizeController::class, 'prize_is_drawable']);