public function sendNotificationForNewMessage(Conversation $conversation, Message $message) { $send_to = $conversation->withUser($message->getFromUser()); if (!$send_to->hasSendNotifications()) { // dont send if the user unchecked the "notify" setting on the profile form return; } $this->sendEmail($send_to, 'You received a new message', 'email/new-message.twig', ['message_from' => $message->getFromUser()->getName(), 'message_link' => $this->urlGenerator->generate('conversation.view', ['conversation_id' => $conversation->getId()], UrlGeneratorInterface::ABSOLUTE_URL)]); }
public function createAction(Application $app, Request $request) { $user = $app['session']->get('user'); $form = $app['form.factory']->create(new ConversationStartForm()); $form->handleRequest($request); if ($form->isValid()) { $form_data = $form->getData(); if (!($to_user = $app['user.manager']->fetchUserById($form_data['to']))) { throw new UserNotFoundException(); } $conversation = Conversation::startNew($user, $to_user, $form_data['subject'], $form_data['body']); $app['conversation_repository']->save($conversation); return $app->redirect($app['url_generator']->generate('conversation.view', ['conversation_id' => $conversation->getId()])); } // TODO: make a view that allows you to see / edit errors $app['session']->getFlashBag()->add('danger', 'A problem occurred when trying to send your message. Please try again.'); return $app->redirect($app['url_generator']->generate('conversation.index')); }
/** * @return Conversation */ protected function createSimpleConversation() { $conversation = Conversation::startNew(\Mockery::mock('Mentoring\\User\\User'), \Mockery::mock('Mentoring\\User\\User'), 'My subject', 'My opening message'); return $conversation; }
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; }