api.php 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. <?php
  2. use Illuminate\Http\Request;
  3. use Illuminate\Support\Facades\Route;
  4. use Illuminate\Support\Facades\Hash;
  5. use Illuminate\Validation\ValidationException;
  6. use Illuminate\Support\Facades\DB;
  7. use App\Models\User;
  8. use App\Models\Message;
  9. /*
  10. |--------------------------------------------------------------------------
  11. | API Routes
  12. |--------------------------------------------------------------------------
  13. |
  14. | Here is where you can register API routes for your application. These
  15. | routes are loaded by the RouteServiceProvider within a group which
  16. | is assigned the "api" middleware group. Enjoy building your API!
  17. |
  18. */
  19. Route::middleware('auth:sanctum')->get('/user', function (Request $request) {
  20. return $request->user();
  21. });
  22. Route::post('/login', function (Request $request) {
  23. $request->validate([
  24. 'email' => 'required|email',
  25. 'password' => 'required',
  26. ]);
  27. $user = User::where('email', $request->email)->first();
  28. if (!$user || !Hash::check($request->password, $user->password)) {
  29. throw ValidationException::withMessages([
  30. 'email' => ['The provided credentials are incorrect.'],
  31. ]);
  32. }
  33. return [
  34. 'token' => $user->createToken('login')->plainTextToken,
  35. 'userData' => json_encode($user),
  36. ];
  37. });
  38. Route::middleware('auth:sanctum')->post('/logout', function (Request $request) {
  39. $user = $request->user();
  40. $user->tokens()->delete();
  41. return $user;
  42. });
  43. Route::middleware('auth:sanctum')->post('/get_dataset', function (Request $request) {
  44. $request->validate([
  45. 'sql' => 'required',
  46. ]);
  47. $dataset = DB::select($request->sql);
  48. return $dataset;
  49. });