Guillaume преди 3 години
родител
ревизия
73beb0b70b
променени са 2 файла, в които са добавени 112 реда и са изтрити 1 реда
  1. +103
    -0
      ShopBundle/Services/SmsFactorUtils.php
  2. +9
    -1
      ShopBundle/Services/UtilsManager.php

+ 103
- 0
ShopBundle/Services/SmsFactorUtils.php Целия файл

@@ -0,0 +1,103 @@
<?php

namespace Lc\ShopBundle\Services;

use Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface;
use Symfony\Component\HttpFoundation\ParameterBag;
use Symfony\Contracts\HttpClient\HttpClientInterface;
use Twig\Environment;

class SmsFactorUtils
{
const TO_USER = 'to-user' ;
const CONTENT_MESSAGE = 'content-message' ;
const CONTENT_TEMPLATE = 'content-template' ;
const CONTENT_DATA = 'content-data' ;

protected $client;
protected $parameterBag;
protected $mailUtils ;
protected $utils ;
protected $templating ;

public function __construct(
HttpClientInterface $client,
ParameterBagInterface $parameterBag,
MailUtils $mailUtils,
Utils $utils,
Environment $templating
) {
$this->client = $client;
$this->parameterBag = $parameterBag;
$this->mailUtils = $mailUtils ;
$this->utils = $utils ;
$this->templating = $templating ;
}

public function send($params = [])
{
$user = isset($params[self::TO_USER]) ? $params[self::TO_USER] : null ;

if($user) {
$phone = $this->utils->formatPhoneNumber($user->getPhone()) ;

$message = '' ;
if(isset($params[self::CONTENT_MESSAGE])) {
$message = $params[self::CONTENT_MESSAGE] ;
}
elseif(isset($params[self::CONTENT_TEMPLATE])) {
$template = $params[self::CONTENT_TEMPLATE] ;
$paramsTemplate = [] ;
if(isset($params[self::CONTENT_DATA]) && is_array($params[self::CONTENT_DATA])) {
$paramsTemplate = $params[self::CONTENT_DATA] ;
}
$message = $this->templating->render($template, $paramsTemplate) ;
}

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('smsfactor.token');
$from = $this->parameterBag->get('smsfactor.from');

if ($token && strlen($token) > 0) {

$response = $this->client->request(
'GET',
'https://api.smsfactor.com/send',
[
'headers' => [
'Authorization' => 'Bearer ' . $token,
'Content-Type' => 'application/json; charset=utf-8',
'Accept' => 'application/json'
],
'query' => [
'sender' => $from,
'to' => $phone,
'text' => $message,
],
]
);

return $response ;
}
else {
throw new \ErrorException('Le token SMS SmsFactor n\'est pas défini.');
}
}
}

return false;
}

}

+ 9
- 1
ShopBundle/Services/UtilsManager.php Целия файл

@@ -30,6 +30,7 @@ class UtilsManager
protected $pointLocationUtils ;
protected $sectionUtils ;
protected $mailjetSmsUtils ;
protected $smsFactorUtils ;

public function __construct(
Utils $utils,
@@ -46,7 +47,8 @@ class UtilsManager
PointLocationUtils $pointLocationUtils,
UtilsProcess $utilsProcess,
SectionUtilsInterface $sectionUtils,
MailjetSmsUtils $mailjetSmsUtils
MailjetSmsUtils $mailjetSmsUtils,
SmsFactorUtils $smsFactorUtils
)
{
$this->utils = $utils ;
@@ -64,6 +66,7 @@ class UtilsManager
$this->utilsProcess = $utilsProcess ;
$this->sectionUtils = $sectionUtils ;
$this->mailjetSmsUtils = $mailjetSmsUtils ;
$this->smsFactorUtils = $smsFactorUtils ;
}

public function getUtils(): Utils
@@ -141,4 +144,9 @@ class UtilsManager
return $this->mailjetSmsUtils ;
}

public function getSmsFactorUtils(): SmsFactorUtils
{
return $this->smsFactorUtils ;
}

}

Loading…
Отказ
Запис