diff --git a/app/Http/Controllers/BlogArticleController.php b/app/Http/Controllers/BlogArticleController.php index 0dec676..8ede612 100644 --- a/app/Http/Controllers/BlogArticleController.php +++ b/app/Http/Controllers/BlogArticleController.php @@ -2,6 +2,7 @@ namespace App\Http\Controllers; +use App\Http\Requests\BlogArticlePublishRequest; use App\Http\Requests\BlogArticleRequest; use App\Http\Services\AuthService; use App\Models\BlogArticle; @@ -113,6 +114,21 @@ class BlogArticleController extends Controller return response(null, 204); } + /** + * Update the published state of the specified resource in storage. + * + * @param \App\Http\Requests\BlogArticlePublishRequest $request + * @param \App\Models\BlogArticle $blogArticle + * @return \Illuminate\Http\Response + */ + public function publish(BlogArticlePublishRequest $request, BlogArticle $blogArticle) + { + $blogArticle->published = $request->get('published'); + $blogArticle->save(); + + return response(null, 204); + } + /** * Remove the specified resource from storage. * diff --git a/app/Http/Requests/BlogArticlePublishRequest.php b/app/Http/Requests/BlogArticlePublishRequest.php new file mode 100644 index 0000000..a261e44 --- /dev/null +++ b/app/Http/Requests/BlogArticlePublishRequest.php @@ -0,0 +1,40 @@ +authService = $authService; + } + + /** + * Determine if the user is authorized to make this request. + * + * @return bool + */ + public function authorize() + { + return $this->authService->isAuthenticated(); + } + + /** + * Get the validation rules that apply to the request. + * + * @return array + */ + public function rules() + { + return [ + 'published' => 'required|boolean', + ]; + } +} diff --git a/resources/js/views/BlogArticleEdit.vue b/resources/js/views/BlogArticleEdit.vue index 2843631..6792c4c 100644 --- a/resources/js/views/BlogArticleEdit.vue +++ b/resources/js/views/BlogArticleEdit.vue @@ -1,7 +1,11 @@