Skip to content

Commit 02877e7

Browse files
Format conversations before sending notifications.
1 parent e4f42dd commit 02877e7

File tree

3 files changed

+18
-7
lines changed

3 files changed

+18
-7
lines changed

src/Controller/MessageController.php

+2-1
Original file line numberDiff line numberDiff line change
@@ -184,12 +184,14 @@ private function addMessageAndSendNotification(
184184
): Message {
185185
$em = $this->getDoctrine()->getManager();
186186
$message = new Message();
187+
$message->setMessage($body);
187188
if (null === $parent) {
188189
$subject = new Subject();
189190
$subject->setSubject($subjectText);
190191
$request = null;
191192
$em->persist($subject);
192193
$em->flush();
194+
$message = $this->conversationModel->formatConversation($message);
193195
} else {
194196
$subject = $parent->getSubject();
195197
$request = $parent->getRequest();
@@ -201,7 +203,6 @@ private function addMessageAndSendNotification(
201203
$message->setParent($parent);
202204
$message->setSender($sender);
203205
$message->setReceiver($receiver);
204-
$message->setMessage($body);
205206
$message->setStatus('Sent');
206207
$em->persist($message);
207208
$em->flush();

src/Controller/RequestController.php

+3-6
Original file line numberDiff line numberDiff line change
@@ -40,21 +40,19 @@ class RequestController extends BaseRequestAndInvitationController
4040

4141
private Mailer $mailer;
4242
private Logger $logger;
43-
private HostingRequestModel $hostingRequestModel;
4443

4544
public function __construct(
4645
ConversationModel $conversationModel,
4746
HostingRequestModel $requestModel,
4847
EntityManagerInterface $entityManager,
4948
Mailer $mailer,
50-
Logger $logger, HostingRequestModel $hostingRequestModel
49+
Logger $logger
5150
) {
5251
parent::__construct($requestModel, $entityManager);
5352

5453
$this->conversationModel = $conversationModel;
5554
$this->mailer = $mailer;
5655
$this->logger = $logger;
57-
$this->hostingRequestModel = $hostingRequestModel;
5856
}
5957

6058
/**
@@ -178,6 +176,7 @@ public function newHostingRequest(
178176
if ($requestForm->isSubmitted() && $requestForm->isValid()) {
179177
// Write request to database after doing some checks
180178
$hostingRequest = $this->getMessageFromData($requestForm->getData(), $guest, $host);
179+
$hostingRequest = $this->conversationModel->formatConversation($hostingRequest);
181180

182181
$em = $this->getDoctrine()->getManager();
183182
$em->persist($hostingRequest);
@@ -327,9 +326,7 @@ private function sendInitialRequestNotification(Member $host, Member $guest, Mes
327326
{
328327
$subject = $request->getSubject()->getSubject();
329328

330-
if ($this->hostingRequestModel->formatRequest($request)) {
331-
$this->sendRequestNotification($guest, $host, $host, $request, $subject, 'request', false);
332-
}
329+
$this->sendRequestNotification($guest, $host, $host, $request, $subject, 'request', false);
333330
}
334331

335332
private function sendHostReplyNotification(

src/Model/ConversationModel.php

+13
Original file line numberDiff line numberDiff line change
@@ -285,6 +285,19 @@ public function markConversationAsRead(Member $member, array $thread)
285285
$em->flush();
286286
}
287287

288+
public function formatConversation(Message $message): Message
289+
{
290+
$messageText = $message->getMessage();
291+
$found = preg_match("/@|at|.at.|-at-|\(at\)/i", $messageText);
292+
293+
if ($found != 0) {
294+
$message->setSpamInfo(SpamInfoType::SPAM_BLOCKED_WORD);
295+
$message->setMessage($messageText . '<p>This might be spam.</p>');
296+
}
297+
298+
return $message;
299+
}
300+
288301
private function hasLimitExceeded(Member $member, string $sql, int $perHour, int $perDay): bool
289302
{
290303
$id = $member->getId();

0 commit comments

Comments
 (0)