diff --git a/src/Controller/TradeController.php b/src/Controller/TradeController.php new file mode 100644 index 0000000..7afec17 --- /dev/null +++ b/src/Controller/TradeController.php @@ -0,0 +1,55 @@ +getUser(); + + if($user != $offer->getByUser()) + { + $email = (new TemplatedEmail()) + ->from('no-reply@pfleanz.li') + ->to($offer->getByUser()->getEmail()) + ->replyTo($user->getEmail()) + ->subject($user->getUsername() . ' wants to trade with you!') + ->text('Trade offer') + ->htmlTemplate('user/trade/offer_email.html.twig') + ->context([ + 'user' => $user, + 'userOffersLink' => $this->generateUrl('user_public', [ + 'id' => $offer->getByUser()->getId(), + ], UrlGeneratorInterface::ABSOLUTE_URL) + ]) + ; + try + { + $mailer->send($email); + $this->addFlash('success', 'Trade offer sent!'); + } catch (TransportExceptionInterface $e) { + $this->addFlash('error', 'There was an error: ' . $e); + } + } else { + $this->addFlash('error','You can\'t trade with yourself!'); + } + + return $this->redirectToRoute('show_offer', ['id' => $offer->getId()]); + } +} diff --git a/src/Repository/OfferingRepository.php b/src/Repository/OfferingRepository.php index 13c715b..cf5c531 100644 --- a/src/Repository/OfferingRepository.php +++ b/src/Repository/OfferingRepository.php @@ -33,6 +33,17 @@ class OfferingRepository extends ServiceEntityRepository ; } + public function findById($id) + { + return $this->createQueryBuilder('o') + ->andWhere('o.Id = :val') + ->setParameter('val', $id) + ->orderBy('o.id', 'ASC') + ->getQuery() + ->getResult() + ; + } + /* public function findOneBySomeField($value): ?Offering { diff --git a/templates/app/offer.html.twig b/templates/app/offer.html.twig index 2d75daa..fbf2e23 100644 --- a/templates/app/offer.html.twig +++ b/templates/app/offer.html.twig @@ -1,6 +1,18 @@ {% extends 'base.html.twig' %} {% block body %} + {% for message in app.flashes('error') %} +
You can checkout their offer and reply to this email if you want to trade.
+ + \ No newline at end of file diff --git a/templates/user/trade/offer_email.html.twig b/templates/user/trade/offer_email.html.twig new file mode 100644 index 0000000..c7da0a7 --- /dev/null +++ b/templates/user/trade/offer_email.html.twig @@ -0,0 +1,5 @@ +Checkout {{ user.username}}'s offers:
+Link +Reply to this email to start trading.
\ No newline at end of file