Advertisement
grifix

Untitled

Feb 20th, 2024 (edited)
430
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 1.73 KB | None | 0 0
  1. <?php
  2.  
  3. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  4. use Symfony\Component\HttpFoundation\Request;
  5. use Symfony\Component\HttpFoundation\Response;
  6. use App\Entity\User;
  7. use Doctrine\ORM\EntityManagerInterface;
  8. use Symfony\Component\Routing\Annotation\Route;
  9. use Symfony\Contracts\HttpClient\HttpClientInterface;
  10.  
  11. class UserController extends AbstractController
  12. {
  13.     private $entityManager;
  14.     private $mailer;
  15.  
  16.     public function __construct(
  17.         EntityManagerInterface $entityManager,
  18.         \Swift_Mailer $mailer,
  19.         HttpClientInterface $client
  20. )
  21.     {
  22.         $this->entityManager = $entityManager;
  23.         $this->mailer = $mailer;
  24.         $this->client = $client;
  25.     }
  26.  
  27.     /**
  28.      * @Route("/user/create", name="create_user", methods={"POST"})
  29.      */
  30.     public function createUser(Request $request): Response
  31.     {
  32.         $username = $request->request->get('username');
  33.         $email = $request->request->get('email');
  34.  
  35.         $user = new User();
  36.         $user->setUsername($username);
  37.         $user->setEmail($email);
  38.        
  39.         $this->entityManager->persist($user);
  40.         $this->entityManager->flush();
  41.  
  42.         $message = (new \Swift_Message('Welcome'))
  43.             ->setFrom('[email protected]')
  44.             ->setTo($user->getEmail())
  45.             ->setBody("Welcome to the site, {$user->getUsername()}");
  46.  
  47.         $this->mailer->send($message);
  48.  
  49.         $this->client->request(
  50.             'POST',
  51.             'https://crm-api.com/api/clients',
  52.             [
  53.                 'json' => [
  54.                     'name' => $username,
  55.                     'email' => $email,
  56.                 ],
  57.             ]
  58.         );
  59.        
  60.         return new Response('User created');
  61.     }
  62. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement