api.php 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  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. use App\Models\Comment;
  10. /*
  11. |--------------------------------------------------------------------------
  12. | API Routes
  13. |--------------------------------------------------------------------------
  14. |
  15. | Here is where you can register API routes for your application. These
  16. | routes are loaded by the RouteServiceProvider within a group which
  17. | is assigned the "api" middleware group. Enjoy building your API!
  18. |
  19. */
  20. Route::middleware('auth:sanctum')->get('/user', function (Request $request) {
  21. return $request->user();
  22. });
  23. Route::post('/login', function (Request $request) {
  24. $request->validate([
  25. 'email' => 'required|email',
  26. 'password' => 'required',
  27. ]);
  28. $user = User::where('email', $request->email)->first();
  29. if (!$user || !Hash::check($request->password, $user->password)) {
  30. throw ValidationException::withMessages([
  31. 'email' => ['The provided credentials are incorrect.'],
  32. ]);
  33. }
  34. return [
  35. 'token' => $user->createToken('login')->plainTextToken,
  36. 'userData' => json_encode($user),
  37. ];
  38. });
  39. Route::middleware('auth:sanctum')->post('/logout', function (Request $request) {
  40. $user = $request->user();
  41. $user->tokens()->delete();
  42. return $user;
  43. });
  44. Route::middleware('auth:sanctum')->post('/get_dataset', function (Request $request) {
  45. $request->validate([
  46. 'sql' => 'required',
  47. ]);
  48. $dataset = DB::select($request->sql);
  49. return $dataset;
  50. });
  51. Route::middleware('auth:sanctum')->post('/post_comment', function (Request $request) {
  52. $request->validate([
  53. 'comment' => 'required',
  54. 'blogId' => 'required',
  55. ]);
  56. Comment::insert([
  57. 'writer' => $request->user()->id,
  58. 'comment' => $request->comment,
  59. 'blogId' => $request->blogId,
  60. 'created_at' => now(),
  61. 'updated_at' => now(),
  62. ]);
  63. return 'success';
  64. });
  65. Route::middleware('auth:sanctum')->post('/delete_comment', function (Request $request) {
  66. $request->validate([
  67. 'commentID' => 'required',
  68. ]);
  69. Comment::where('id', '=', $request->commentID)->delete();
  70. return 'success';
  71. });