|
|
@@ -5,6 +5,8 @@ use Illuminate\Support\Facades\Route;
|
|
|
use Illuminate\Support\Facades\Hash;
|
|
|
use Illuminate\Validation\ValidationException;
|
|
|
use Illuminate\Support\Facades\DB;
|
|
|
+use Illuminate\Support\Facades\File;
|
|
|
+use Illuminate\Support\Facades\Storage;
|
|
|
|
|
|
use App\Models\User;
|
|
|
use App\Models\Message;
|
|
|
@@ -12,6 +14,11 @@ use App\Models\Blog;
|
|
|
use App\Models\Comment;
|
|
|
use App\Models\BlogImage;
|
|
|
|
|
|
+use App\Http\Controllers\UserController;
|
|
|
+use App\Http\Controllers\BlogController;
|
|
|
+use App\Http\Controllers\BlogImageController;
|
|
|
+use App\Http\Controllers\CommentController;
|
|
|
+
|
|
|
/*
|
|
|
|--------------------------------------------------------------------------
|
|
|
| API Routes
|
|
|
@@ -53,136 +60,45 @@ Route::middleware('auth:sanctum')->post('/logout', function (Request $request) {
|
|
|
return $user;
|
|
|
});
|
|
|
|
|
|
-Route::middleware('auth:sanctum')->post('/comment/post', function (Request $request) {
|
|
|
- $request->validate([
|
|
|
- 'comment' => 'required',
|
|
|
- 'blogId' => 'required',
|
|
|
- ]);
|
|
|
-
|
|
|
- Comment::insert([
|
|
|
- 'writer' => $request->user()->id,
|
|
|
- 'comment' => $request->comment,
|
|
|
- 'blogId' => $request->blogId,
|
|
|
- 'created_at' => now(),
|
|
|
- 'updated_at' => now(),
|
|
|
- ]);
|
|
|
-
|
|
|
- return 'success';
|
|
|
-});
|
|
|
-
|
|
|
-Route::middleware('auth:sanctum')->post('/comment/delete', function (Request $request) {
|
|
|
- $request->validate([
|
|
|
- 'commentID' => 'required',
|
|
|
- ]);
|
|
|
-
|
|
|
- Comment::where('id', '=', $request->commentID)->delete();
|
|
|
-
|
|
|
- return 'success';
|
|
|
-});
|
|
|
-
|
|
|
-Route::middleware('auth:sanctum')->post('/get_blog/list', function (Request $request) {
|
|
|
- $blogList = DB::select("SELECT
|
|
|
- blogs.id,
|
|
|
- title,
|
|
|
- content AS excerpt,
|
|
|
- tags,
|
|
|
- users.id AS userId,
|
|
|
- users.name AS userFullName,
|
|
|
- blogs.created_at AS blogPosted,
|
|
|
- t.total AS comment,
|
|
|
- path
|
|
|
- FROM [laravel_kevin].[dbo].[blogs]
|
|
|
- LEFT JOIN [dbo].[users] ON [blogs].[writer] = [users].[id]
|
|
|
- LEFT JOIN (
|
|
|
- SELECT [blogId],COUNT(*) AS total
|
|
|
- FROM [laravel_kevin].[dbo].[comments]
|
|
|
- GROUP BY [blogId]) as t ON [blogs].[id] = [t].[blogId]
|
|
|
- LEFT JOIN [dbo].[blog_images] ON [blogs].[id] = [blog_images].[blogId]
|
|
|
- ORDER BY blogs.id DESC");
|
|
|
- foreach($blogList as $blog) {
|
|
|
- $blog->tags = json_decode($blog->tags);
|
|
|
- }
|
|
|
-
|
|
|
- return $blogList;
|
|
|
-});
|
|
|
-
|
|
|
-Route::middleware('auth:sanctum')->post('/get_blog/list/perpage', function (Request $request) {
|
|
|
- $request->validate([
|
|
|
- 'offset' => 'required',
|
|
|
- 'rows' => 'required',
|
|
|
- ]);
|
|
|
- $blogList = DB::select("SELECT
|
|
|
- blogs.id,
|
|
|
- title,
|
|
|
- content AS excerpt,
|
|
|
- tags,
|
|
|
- users.id AS userId,
|
|
|
- users.name AS userFullName,
|
|
|
- blogs.created_at AS blogPosted,
|
|
|
- t.total AS comment,
|
|
|
- path
|
|
|
- FROM [laravel_kevin].[dbo].[blogs]
|
|
|
- LEFT JOIN [dbo].[users] ON [blogs].[writer] = [users].[id]
|
|
|
- LEFT JOIN (
|
|
|
- SELECT [blogId],COUNT(*) AS total
|
|
|
- FROM [laravel_kevin].[dbo].[comments]
|
|
|
- GROUP BY [blogId]) as t ON [blogs].[id] = [t].[blogId]
|
|
|
- LEFT JOIN [dbo].[blog_images] ON [blogs].[id] = [blog_images].[blogId]
|
|
|
- ORDER BY blogs.id DESC
|
|
|
- OFFSET " . $request->offset . " ROW
|
|
|
- FETCH NEXT " . $request->rows . " ROWS ONLY");
|
|
|
- foreach($blogList as $blog) {
|
|
|
- $blog->tags = json_decode($blog->tags);
|
|
|
- }
|
|
|
-
|
|
|
- return $blogList;
|
|
|
+Route::middleware('auth:sanctum')->group(function () {
|
|
|
+ //users controller
|
|
|
+ Route::post('/user/index', [UserController::class, 'index']);
|
|
|
+ Route::post('/user/show', [UserController::class, 'show']);
|
|
|
+ Route::post('/user/destroy', [UserController::class, 'destroy']);
|
|
|
+
|
|
|
+ //blogs controller
|
|
|
+ Route::post('/blog/index', [BlogController::class, 'index']);
|
|
|
+ Route::post('/blog/index-page', [BlogController::class, 'index_page']);
|
|
|
+ Route::post('/blog/sidebar', [BlogController::class, 'sidebar']);
|
|
|
+ Route::post('/blog/total-count', [BlogController::class, 'total_count']);
|
|
|
+ Route::post('/blog/show', [BlogController::class, 'show']);
|
|
|
+ Route::post('/blog/store', [BlogController::class, 'store']);
|
|
|
+ Route::post('/blog/edit', [BlogController::class, 'edit']);
|
|
|
+ Route::post('/blog/destroy', [BlogController::class, 'destroy']);
|
|
|
+
|
|
|
+ //blogs image controller
|
|
|
+ Route::post('/blog-image/index', [BlogImageController::class, 'index']);
|
|
|
+ Route::post('/blog-image/show', [BlogImageController::class, 'show']);
|
|
|
+ Route::post('/blog-image/store', [BlogImageController::class, 'store']);
|
|
|
+
|
|
|
+ //comments controller
|
|
|
+ Route::post('/comment/index-by-blog', [CommentController::class, 'index_by_blog']);
|
|
|
+ Route::post('/comment/index-count', [CommentController::class, 'index_count']);
|
|
|
+ Route::post('/comment/show', [CommentController::class, 'show']);
|
|
|
+ Route::post('/comment/store', [CommentController::class, 'store']);
|
|
|
+ Route::post('/comment/destroy', [CommentController::class, 'destroy']);
|
|
|
});
|
|
|
|
|
|
-Route::middleware('auth:sanctum')->post('/get_blog/list/total', function (Request $request) {
|
|
|
- $blogList = DB::select("SELECT COUNT(*) AS total
|
|
|
- FROM [laravel_kevin].[dbo].[blogs]");
|
|
|
|
|
|
- return $blogList[0]->total;
|
|
|
-});
|
|
|
-
|
|
|
-Route::middleware('auth:sanctum')->post('/get_blog/detail', function (Request $request) {
|
|
|
- $request->validate([
|
|
|
- 'blogId' => 'required',
|
|
|
- ]);
|
|
|
- $blog = DB::select("SELECT
|
|
|
- title,
|
|
|
- content,
|
|
|
- tags,
|
|
|
- users.id AS userId,
|
|
|
- users.name AS userFullName,
|
|
|
- blogs.created_at AS createdTime,
|
|
|
- bookmarked,
|
|
|
- t.total AS comments,
|
|
|
- path
|
|
|
- FROM [laravel_kevin].[dbo].[blogs]
|
|
|
- LEFT JOIN [dbo].[users] ON [blogs].[writer] = [users].[id]
|
|
|
- LEFT JOIN (
|
|
|
- SELECT [blogId],COUNT(*) AS total
|
|
|
- FROM [laravel_kevin].[dbo].[comments]
|
|
|
- GROUP BY [blogId]) as t ON [blogs].[id] = [t].[blogId]
|
|
|
- LEFT JOIN [dbo].[blog_images] ON [blogs].[id] = [blog_images].[blogId]
|
|
|
- WHERE blogs.id=" . $request->blogId);
|
|
|
- $blog[0]->tags = json_decode($blog[0]->tags);
|
|
|
-
|
|
|
- $comments = DB::select("SELECT comment AS commentText, comments.created_at AS commentedAt, users.id AS userId, users.name AS userFullName
|
|
|
- FROM [laravel_kevin].[dbo].[comments]
|
|
|
- RIGHT JOIN [dbo].[users] ON [comments].[writer] = [users].[id]
|
|
|
- WHERE [blogId]=" . $request->blogId);
|
|
|
- return ['blog' => $blog[0], 'comments' => $comments];
|
|
|
-});
|
|
|
+//todo count blog comment
|
|
|
|
|
|
-Route::middleware('auth:sanctum')->post('/get_blog/sidebar', function (Request $request) {
|
|
|
+Route::middleware('auth:sanctum')->post('/blog/sideba', function (Request $request) {
|
|
|
$recentPosts = DB::select("SELECT TOP(4)
|
|
|
blogs.id,
|
|
|
title,
|
|
|
- blogs.created_at AS createdTime,
|
|
|
+ blogs.updated_at AS updatedTime,
|
|
|
t.total AS comments,
|
|
|
- path
|
|
|
+ saveName
|
|
|
FROM [laravel_kevin].[dbo].[blogs]
|
|
|
LEFT JOIN [dbo].[users] ON [blogs].[writer] = [users].[id]
|
|
|
LEFT JOIN (
|
|
|
@@ -203,49 +119,20 @@ Route::middleware('auth:sanctum')->post('/get_blog/sidebar', function (Request $
|
|
|
return ['recentPosts' => $recentPosts, 'categories' => $categories];
|
|
|
});
|
|
|
|
|
|
-Route::middleware('auth:sanctum')->post('/get_blog/edit', function (Request $request) {
|
|
|
+Route::post('/blog-image/fake', function (Request $request) {
|
|
|
$request->validate([
|
|
|
'blogId' => 'required',
|
|
|
]);
|
|
|
- $data = DB::select("SELECT
|
|
|
- title AS blogTitle,
|
|
|
- content AS excerpt,
|
|
|
- tags AS blogCategories,
|
|
|
- users.id AS userId,
|
|
|
- users.name AS userFullName,
|
|
|
- blogs.created_at AS createdTime
|
|
|
- FROM [laravel_kevin].[dbo].[blogs]
|
|
|
- RIGHT JOIN [dbo].[users] ON [blogs].[writer] = [users].[id]
|
|
|
- WHERE blogs.id=" . $request->blogId);
|
|
|
- $data[0]->blogCategories = json_decode($data[0]->blogCategories);
|
|
|
-
|
|
|
- return $data[0];
|
|
|
-});
|
|
|
|
|
|
-Route::middleware('auth:sanctum')->post('/get_blog/image_insert', function (Request $request) {
|
|
|
- $request->validate([
|
|
|
- 'blogId' => 'required',
|
|
|
- 'path' => 'required',
|
|
|
- 'name' => 'required',
|
|
|
- ]);
|
|
|
-
|
|
|
- BlogImage::insert([
|
|
|
- 'blogId' => $request->blogId,
|
|
|
- 'path' => $request->path,
|
|
|
- 'name' => $request->name,
|
|
|
- 'created_at' => now(),
|
|
|
- 'updated_at' => now(),
|
|
|
- ]);
|
|
|
-
|
|
|
- // for ( $i=$request->blogId ; $i<11 ; $i++ ) {
|
|
|
- // BlogImage::insert([
|
|
|
- // 'blogId' => $i,
|
|
|
- // 'path' => 'banner/banner-'.$i.'.jpg',
|
|
|
- // 'name' => 'banner-'.$i,
|
|
|
- // 'created_at' => now(),
|
|
|
- // 'updated_at' => now(),
|
|
|
- // ]);
|
|
|
- // }
|
|
|
+ for ( $i=$request->blogId ; $i<11 ; $i++ ) {
|
|
|
+ BlogImage::insert([
|
|
|
+ 'blogId' => $i,
|
|
|
+ 'saveName' => 'banner-'.$i.'.jpg',
|
|
|
+ 'fileName' => 'banner-'.$i.'.jpg',
|
|
|
+ 'created_at' => now(),
|
|
|
+ 'updated_at' => now(),
|
|
|
+ ]);
|
|
|
+ }
|
|
|
|
|
|
return 'success';
|
|
|
});
|