예제 #1
0
 protected function hydrateConversation(array $convo_data)
 {
     $messages_data = $this->dbal->fetchAll('SELECT * FROM messages WHERE conversation_id = :conversation_id', ['conversation_id' => $convo_data['id']]);
     $messages = [];
     foreach ($messages_data as $message_data) {
         $messages[] = $message = new Message($this->userService->fetchUserById($message_data['from_user_id']), $message_data['body'], new \DateTime($message_data['created_at']));
         $message->setId($message_data['id']);
         if ($message_data['is_read']) {
             $message->markRead();
         }
     }
     $conversation = new Conversation($this->userService->fetchUserById($convo_data['from_user_id']), $this->userService->fetchUserById($convo_data['to_user_id']), $convo_data['subject'], $messages[0]);
     $conversation->setId($convo_data['id']);
     foreach ($messages as $message) {
         $conversation->addMessage($message);
     }
     $this->in_memory_convos[$conversation->getId()] = $conversation;
     return $conversation;
 }