update vm ticket
This commit is contained in:
@@ -136,6 +136,97 @@ class PostController extends Controller
|
||||
]);
|
||||
}
|
||||
|
||||
public function trashed(Request $request): JsonResponse
|
||||
{
|
||||
$perPage = min((int) $request->get('per_page', 15), 100);
|
||||
|
||||
$paginator = Post::onlyTrashed()
|
||||
->with('category')
|
||||
->when(
|
||||
$request->filled('keyword'),
|
||||
fn ($q) => $q->where('title', 'like', '%' . $request->string('keyword')->toString() . '%')
|
||||
)
|
||||
->orderByDesc('deleted_at')
|
||||
->paginate($perPage);
|
||||
|
||||
return response()->json([
|
||||
'error' => false,
|
||||
'data' => [
|
||||
'items' => PostResource::collection($paginator->items()),
|
||||
'total' => $paginator->total(),
|
||||
'per_page' => $paginator->perPage(),
|
||||
'current_page' => $paginator->currentPage(),
|
||||
'last_page' => $paginator->lastPage(),
|
||||
],
|
||||
]);
|
||||
}
|
||||
|
||||
public function restore(int $id): JsonResponse
|
||||
{
|
||||
$post = Post::onlyTrashed()->find($id);
|
||||
|
||||
if (!$post) {
|
||||
return response()->json(['error' => true, 'message' => 'Không tìm thấy bài viết.'], 404);
|
||||
}
|
||||
|
||||
$post->restore();
|
||||
$this->revalidation->revalidateDocs();
|
||||
|
||||
return response()->json(['error' => false, 'message' => 'Khôi phục bài viết thành công.']);
|
||||
}
|
||||
|
||||
public function forceDelete(int $id): JsonResponse
|
||||
{
|
||||
$post = Post::onlyTrashed()->find($id);
|
||||
|
||||
if (!$post) {
|
||||
return response()->json(['error' => true, 'message' => 'Không tìm thấy bài viết.'], 404);
|
||||
}
|
||||
|
||||
$post->forceDelete();
|
||||
|
||||
return response()->json(['error' => false, 'message' => 'Xoá vĩnh viễn bài viết thành công.']);
|
||||
}
|
||||
|
||||
public function bulkRestore(Request $request): JsonResponse
|
||||
{
|
||||
$request->validate(['ids' => 'required|array|min:1', 'ids.*' => 'integer']);
|
||||
$count = Post::onlyTrashed()->whereIn('id', $request->ids)->restore();
|
||||
$this->revalidation->revalidateDocs();
|
||||
|
||||
return response()->json(['error' => false, 'message' => "Đã khôi phục {$count} bài viết."]);
|
||||
}
|
||||
|
||||
public function bulkForceDelete(Request $request): JsonResponse
|
||||
{
|
||||
$request->validate(['ids' => 'required|array|min:1', 'ids.*' => 'integer']);
|
||||
$count = Post::onlyTrashed()->whereIn('id', $request->ids)->forceDelete();
|
||||
|
||||
return response()->json(['error' => false, 'message' => "Đã xoá vĩnh viễn {$count} bài viết."]);
|
||||
}
|
||||
|
||||
public function bulkDelete(Request $request): JsonResponse
|
||||
{
|
||||
$request->validate(['ids' => 'required|array|min:1', 'ids.*' => 'integer']);
|
||||
$count = Post::whereIn('id', $request->ids)->delete();
|
||||
$this->revalidation->revalidateDocs();
|
||||
|
||||
return response()->json(['error' => false, 'message' => "Đã xoá {$count} bài viết."]);
|
||||
}
|
||||
|
||||
public function bulkUpdateStatus(Request $request): JsonResponse
|
||||
{
|
||||
$request->validate([
|
||||
'ids' => 'required|array|min:1',
|
||||
'ids.*' => 'integer',
|
||||
'status' => 'required|in:draft,published,hidden',
|
||||
]);
|
||||
$count = Post::whereIn('id', $request->ids)->update(['status' => $request->status]);
|
||||
$this->revalidation->revalidateDocs();
|
||||
|
||||
return response()->json(['error' => false, 'message' => "Đã cập nhật trạng thái {$count} bài viết."]);
|
||||
}
|
||||
|
||||
public function syncWordpress(Request $request): JsonResponse
|
||||
{
|
||||
$validated = $request->validate([
|
||||
|
||||
Reference in New Issue
Block a user