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') %} + + {% endfor %} + + {% for message in app.flashes('success') %} +
+ {{ message }} +
+ {% endfor %} + {% if offer.byUser == user %} {% endif %} @@ -58,6 +70,6 @@ {% endif %} - + Offer trade {% endif %} {% endblock %} diff --git a/templates/offer/trade/trade_email.html.twig b/templates/offer/trade/trade_email.html.twig new file mode 100644 index 0000000..979ba20 --- /dev/null +++ b/templates/offer/trade/trade_email.html.twig @@ -0,0 +1,5 @@ +

{{ user.username}} wants to trade!

+ +

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 @@ +

{{ user.username }} wants to trade!

+ +

Checkout {{ user.username}}'s offers:

+
Link +

Reply to this email to start trading.

\ No newline at end of file