Esempio n. 1
0
 /**
  * @param EditPost $command
  * @return \Flarum\Core\Posts\Post
  * @throws \Flarum\Core\Exceptions\PermissionDeniedException
  */
 public function handle(EditPost $command)
 {
     $actor = $command->actor;
     $data = $command->data;
     $post = $this->posts->findOrFail($command->postId, $actor);
     if ($post instanceof CommentPost) {
         $attributes = array_get($data, 'attributes', []);
         if (isset($attributes['content'])) {
             $post->assertCan($actor, 'edit');
             $post->revise($attributes['content'], $actor);
         }
         if (isset($attributes['isHidden'])) {
             $post->assertCan($actor, 'edit');
             if ($attributes['isHidden']) {
                 $post->hide($actor);
             } else {
                 $post->restore();
             }
         }
     }
     event(new PostWillBeSaved($post, $actor, $data));
     $post->save();
     $this->dispatchEventsFor($post);
     return $post;
 }
Esempio n. 2
0
 /**
  * @param DeletePost $command
  * @return \Flarum\Core\Posts\Post
  */
 public function handle(DeletePost $command)
 {
     $actor = $command->actor;
     $post = $this->posts->findOrFail($command->postId, $actor);
     $post->assertCan($actor, 'delete');
     event(new PostWillBeDeleted($post, $actor, $command->data));
     $post->delete();
     $this->dispatchEventsFor($post);
     return $post;
 }
Esempio n. 3
0
 /**
  * Get a single post, ready to be serialized and assigned to the JsonApi
  * response.
  *
  * @param JsonApiRequest $request
  * @param Document $document
  * @return \Flarum\Core\Posts\Post
  */
 protected function data(JsonApiRequest $request, Document $document)
 {
     return $this->posts->findOrFail($request->get('id'), $request->actor);
 }