api.php 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  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\TemplateController;
  8. use App\Models\User;
  9. use Illuminate\Support\Facades\Hash;
  10. use App\Http\Controllers\PrizeController;
  11. use App\Http\Controllers\RecipientsController;
  12. /*
  13. |--------------------------------------------------------------------------
  14. | API Routes
  15. |--------------------------------------------------------------------------
  16. |
  17. | Here is where you can register API routes for your application. These
  18. | routes are loaded by the RouteServiceProvider within a group which
  19. | is assigned the "api" middleware group. Enjoy building your API!
  20. |
  21. */
  22. Route::middleware('auth:sanctum')->get('/user', function (Request $request) {
  23. $user = $request->user();
  24. $islogin = $user->tokenCan('update');
  25. $test = $islogin ? 'true' : 'false';
  26. return $user;
  27. });
  28. Route::post('/login', function (Request $request) {
  29. $data = $request->validate([
  30. 'account' => 'required',
  31. 'password' => 'required'
  32. ]);
  33. $user = User::where('account', $request->account)->first();
  34. if (!$user || !Hash::check($request->password, $user->password)) {
  35. return response([
  36. 'message' => ['These credentials do not match our records.']
  37. ], 404);
  38. }
  39. $token = $user->createToken('test-token', [$user->role])->plainTextToken;
  40. $response = [
  41. 'user' => JSON_ENCODE($user, JSON_UNESCAPED_UNICODE),
  42. 'token' => $token,
  43. ];
  44. return response($response, 201);
  45. });
  46. Route::post('/logout', function (Request $request) {
  47. $user = $request->user();
  48. $user->tokens()->delete();
  49. return $user;
  50. })->middleware(['auth:sanctum']);
  51. Route::post('/refresh', function (Request $request) {
  52. $user = $request->user();
  53. $user->tokens()->delete();
  54. $token = $user->createToken('test-token', ['uploader', 'tester'])->plainTextToken;
  55. $response = [
  56. 'user' => $user,
  57. 'token' => $token,
  58. ];
  59. return response($response, 201);
  60. })->middleware(['auth:sanctum']);
  61. /* Template API */
  62. Route::post('/index', [TemplateController::class, 'index']);
  63. Route::middleware('auth:sanctum')->group(function () {
  64. });
  65. Route::middleware(['auth:sanctum', 'abilities:Admin'])->group(function () {
  66. // Prize
  67. Route::post('/prize/draw', [PrizeController::class, 'draw']);
  68. // Recipients
  69. Route::post('/recipients/store', [RecipientsController::class, 'store']);
  70. });
  71. Route::post('/prize/index', [PrizeController::class, 'index']);
  72. Route::post('/recipients/index', [RecipientsController::class, 'index']);