|
- <?php
-
- namespace Lc\ShopBundle\Services;
-
- use Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface;
- use Symfony\Component\HttpFoundation\ParameterBag;
- use Symfony\Contracts\HttpClient\HttpClientInterface;
-
- class MailjetSMS
- {
- protected $client;
- protected $parameterBag;
- protected $mailUtils ;
- protected $utils ;
-
- public function __construct(HttpClientInterface $client, ParameterBagInterface $parameterBag, UtilsManager $utilsManager)
- {
- $this->client = $client;
- $this->parameterBag = $parameterBag;
- $this->mailUtils = $utilsManager->getMailUtils() ;
- $this->utils = $utilsManager->getUtils() ;
- }
-
- public function send($user, $message)
- {
-
- if($user) {
- $phone = $this->utils->formatPhoneNumber($user->getPhone()) ;
-
- if($this->parameterBag->get('mailjet.dev.redirect.active') == 1) {
- $this->mailUtils->send([
- MailUtils::SUBJECT => 'Notification par SMS à '.$phone,
- MailUtils::TO_EMAIL => $user->getEmail(),
- MailUtils::CONTENT_TEMPLATE => 'mail/notification',
- MailUtils::CONTENT_DATA => [
- 'message' => $message
- ],
- ]);
-
- return true ;
- }
- else {
- $token = $this->parameterBag->get('mailjet.sms.token');
- $from = $this->parameterBag->get('mailjet.sms.from');
-
- if ($token && strlen($token) > 0) {
- $response = $this->client->request(
- 'POST',
- 'https://api.mailjet.com/v4/sms-send',
- [
- 'headers' => [
- 'Authorization' => 'Bearer ' . $token,
- ],
- 'json' => [
- 'From' => $from,
- 'To' => $phone,
- 'Text' => $message,
- ]
- ]
- );
-
- $statusCode = $response->getStatusCode();
-
- if ($statusCode == 200) {
- $content = $response->getContent();
- $content = $response->toArray();
- return $content;
- } else {
- // log
- }
- }
- else {
- throw new \ErrorException('Le token SMS Mailjet n\'est pas défini.');
- }
- }
- }
-
- return false;
- }
-
- }
|