Beispiel #1
0
 private function sendStatesToDevises($tokens, $states)
 {
     foreach ($tokens as $token) {
         $stateSender = new StateSender($token);
         foreach ($states as $state) {
             if ($state->object == 'post') {
                 $post = Post::find($state->object_id);
                 if (!$post) {
                     $this->error('Post not found');
                 }
                 $comment = Comment::find($state->subject_id);
                 if (!$comment) {
                     $this->error('Comment not found');
                 }
                 $user = User::find($state->user_id);
                 if (!$user) {
                     $this->error('User not found');
                 }
                 if ($post && $user) {
                     if ($state->event == 'commented' && $comment) {
                         $stateSender->setPostAsCommented($post, $comment, $user, true);
                     } else {
                         if ($state->event == 'liked') {
                             $stateSender->setPostAsLiked($post, $user, true);
                         }
                     }
                 }
             } else {
                 if ($state->object == 'comment' && $state->event == 'liked') {
                     $comment = Comment::find($state->object_id);
                     if (!$comment) {
                         $this->error('Comment not found');
                     }
                     $user = User::find($state->user_id);
                     if (!$user) {
                         $this->error('User not found');
                     }
                     if ($user && $comment) {
                         $stateSender->setCommentAsLiked($comment, $user, true);
                     }
                 }
             }
         }
         $stateSender->send();
     }
 }