|
|
@@ -10,6 +10,7 @@ use App\Models\User;
|
|
|
use App\Models\Message;
|
|
|
use App\Models\Blog;
|
|
|
use App\Models\Comment;
|
|
|
+use App\Models\BlogImage;
|
|
|
|
|
|
/*
|
|
|
|--------------------------------------------------------------------------
|
|
|
@@ -84,17 +85,23 @@ Route::middleware('auth:sanctum')->post('/get_blog/list', function (Request $req
|
|
|
blogs.id,
|
|
|
title,
|
|
|
content AS excerpt,
|
|
|
- tags, users.id AS userId,
|
|
|
+ tags,
|
|
|
+ users.id AS userId,
|
|
|
users.name AS userFullName,
|
|
|
blogs.created_at AS blogPosted,
|
|
|
- t.total AS comment
|
|
|
+ t.total AS comment,
|
|
|
+ path
|
|
|
FROM [laravel_kevin].[dbo].[blogs]
|
|
|
- RIGHT JOIN [dbo].[users] ON [blogs].[writer] = [users].[id]
|
|
|
+ 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;
|
|
|
});
|
|
|
@@ -108,19 +115,25 @@ Route::middleware('auth:sanctum')->post('/get_blog/list/perpage', function (Requ
|
|
|
blogs.id,
|
|
|
title,
|
|
|
content AS excerpt,
|
|
|
- tags, users.id AS userId,
|
|
|
+ tags,
|
|
|
+ users.id AS userId,
|
|
|
users.name AS userFullName,
|
|
|
blogs.created_at AS blogPosted,
|
|
|
- t.total AS comment
|
|
|
+ t.total AS comment,
|
|
|
+ path
|
|
|
FROM [laravel_kevin].[dbo].[blogs]
|
|
|
- RIGHT JOIN [dbo].[users] ON [blogs].[writer] = [users].[id]
|
|
|
+ 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;
|
|
|
});
|
|
|
@@ -144,14 +157,17 @@ Route::middleware('auth:sanctum')->post('/get_blog/detail', function (Request $r
|
|
|
users.name AS userFullName,
|
|
|
blogs.created_at AS createdTime,
|
|
|
bookmarked,
|
|
|
- t.total AS comments
|
|
|
+ t.total AS comments,
|
|
|
+ path
|
|
|
FROM [laravel_kevin].[dbo].[blogs]
|
|
|
- RIGHT JOIN [dbo].[users] ON [blogs].[writer] = [users].[id]
|
|
|
+ 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]
|
|
|
@@ -161,13 +177,19 @@ Route::middleware('auth:sanctum')->post('/get_blog/detail', function (Request $r
|
|
|
});
|
|
|
|
|
|
Route::middleware('auth:sanctum')->post('/get_blog/sidebar', function (Request $request) {
|
|
|
- $recentPosts = DB::select("SELECT TOP(4) blogs.id, title, blogs.created_at AS createdTime, t.total AS comments
|
|
|
+ $recentPosts = DB::select("SELECT TOP(4)
|
|
|
+ blogs.id,
|
|
|
+ title,
|
|
|
+ blogs.created_at AS createdTime,
|
|
|
+ t.total AS comments,
|
|
|
+ path
|
|
|
FROM [laravel_kevin].[dbo].[blogs]
|
|
|
- RIGHT JOIN [dbo].[users] ON [blogs].[writer] = [users].[id]
|
|
|
+ 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 comments DESC");
|
|
|
|
|
|
$categories = [
|
|
|
@@ -180,3 +202,50 @@ 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) {
|
|
|
+ $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(),
|
|
|
+ // ]);
|
|
|
+ // }
|
|
|
+
|
|
|
+ return 'success';
|
|
|
+});
|