api.php 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155
  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. use App\Http\Controllers\GuestRegistrationController;
  17. use App\Models\CheckIn;
  18. /*
  19. |--------------------------------------------------------------------------
  20. | API Routes
  21. |--------------------------------------------------------------------------
  22. |
  23. | Here is where you can register API routes for your application. These
  24. | routes are loaded by the RouteServiceProvider within a group which
  25. | is assigned the "api" middleware group. Enjoy building your API!
  26. |
  27. */
  28. Route::middleware('auth:sanctum')->get('/user', function (Request $request) {
  29. $user = $request->user();
  30. $islogin = $user->tokenCan('update');
  31. $test = $islogin ? 'true' : 'false';
  32. return $user;
  33. });
  34. Route::post('/login', function (Request $request) {
  35. $data = $request->validate([
  36. 'account' => 'required',
  37. 'password' => 'required'
  38. ]);
  39. $user = User::where('account', $request->account)->first();
  40. if (!$user || !Hash::check($request->password, $user->password)) {
  41. return response([
  42. 'message' => ['These credentials do not match our records.']
  43. ], 404);
  44. }
  45. $token = $user->createToken('test-token', [$user->role])->plainTextToken;
  46. $response = [
  47. 'user' => JSON_ENCODE($user, JSON_UNESCAPED_UNICODE),
  48. 'token' => $token,
  49. ];
  50. return response($response, 201);
  51. });
  52. Route::post('/logout', function (Request $request) {
  53. $user = $request->user();
  54. $user->tokens()->delete();
  55. return $user;
  56. })->middleware(['auth:sanctum']);
  57. Route::post('/refresh', function (Request $request) {
  58. $user = $request->user();
  59. $user->tokens()->delete();
  60. $token = $user->createToken('test-token', [$user->role])->plainTextToken;
  61. $response = [
  62. 'user' => $user,
  63. 'token' => $token,
  64. ];
  65. return response($response, 201);
  66. })->middleware(['auth:sanctum']);
  67. /* Template API */
  68. Route::post('/index', [TemplateController::class, 'index']);
  69. Route::middleware('auth:sanctum')->group(function () {
  70. Route::resource('guest', GuestRegistrationController::class)->only([
  71. 'update', 'destroy'
  72. ]);
  73. });
  74. Route::middleware(['auth:sanctum', 'abilities:Admin'])->group(function () {
  75. //activity
  76. Route::post('/activity/store', [ActivityController::class, 'store']);
  77. Route::post('/activity/update', [ActivityController::class, 'update']);
  78. Route::post('/activity/sql', [ActivityController::class, 'sql']);
  79. Route::post('/activity/uploadFile', [ActivityController::class, 'uploadFile']);
  80. //DrawManager
  81. Route::post('/drawManager', [DrawController::class, 'send']);
  82. //Tester
  83. Route::post('/randomTest/draw', [DrawController::class, 'draw_test']);
  84. });
  85. Route::middleware(['auth:sanctum', 'ability:Draw,Admin'])->group(function () {
  86. // Draw
  87. Route::post('/draw/draw', [DrawController::class, 'draw']);
  88. Route::post('/draw/store', [DrawController::class, 'store']);
  89. Route::post('/draw/donate', [DrawController::class, 'donate']);
  90. Route::post('/draw/test', [DrawController::class, 'test']);
  91. // Prize
  92. Route::post('/prize/store', [PrizeController::class, 'store']);
  93. Route::post('/prize/count_by_prize', [PrizeController::class, 'count_by_prize']);
  94. });
  95. Route::middleware(['auth:sanctum', 'ability:Checkin,Admin'])->group(function () {
  96. // CheckIn
  97. Route::post('/check_in/check_in', [CheckInController::class, 'check_in']);
  98. Route::post('/check_in/check_out', [CheckInController::class, 'check_out']);
  99. Route::post('/checkin/show', [CheckInController::class, 'show']);
  100. Route::post('/checkin/export', [CheckInController::class, 'export']);
  101. // Recipients
  102. Route::post('/recipient/claim', [RecipientsController::class, 'claim']);
  103. Route::post('/recipient/isClaimed', [RecipientsController::class, 'isClaimed']);
  104. });
  105. Route::post('/recipient/indexByPrize', [RecipientsController::class, 'indexByPrize']);
  106. Route::post('/user/index', [UserController::class, 'index']);
  107. Route::post('/department/index', [DepartmentController::class, 'index']);
  108. Route::post('/prize/index_by_activity', [PrizeController::class, 'index_by_activity']);
  109. Route::post('/check_in/index_by_activity', [CheckInController::class, 'index_by_activity']);
  110. Route::post('/recipients/index_by_activity', [RecipientsController::class, 'index_by_activity']);
  111. Route::post('/recipients/export', [RecipientsController::class, 'export']);
  112. Route::post('/draw/search_user_status', [DrawController::class, 'search_user_status']);
  113. Route::post('/activity/list', [ActivityController::class, 'index']);
  114. Route::post('/activity/show', [ActivityController::class, 'show']);
  115. // Route::post('/guest/index', [GuestRegistrationController::class, 'index']);
  116. // Route::post('/guest/store', [GuestRegistrationController::class, 'store']);
  117. // Route::resource('guest', GuestRegistrationController::class);
  118. Route::get('/guest/lookup', [CheckInController::class, 'searchByName']);
  119. Route::resource('guest', GuestRegistrationController::class)->only([
  120. 'index', 'show','store'
  121. ]);