hydra-sql/src/Service/SQLLoginService.php
rudy 422e97d329
Some checks failed
Cadoles/hydra-sql/pipeline/pr-develop There was a failure building this commit
supression des fonctions liées à l'update du hashage de mot de passe
2022-12-16 16:49:24 +01:00

74 lines
2.2 KiB
PHP

<?php
namespace App\Service;
use App\SQLLogin\SQLLoginConnect;
use App\SQLLogin\SQLLoginRequest;
use PDO;
use PDOException;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
class SQLLoginService extends AbstractController
{
public SQLLoginRequest $sqlLoginRequest;
public function __construct(SQLLoginRequest $sqlLoginRequest)
{
$this->sqlLoginRequest = $sqlLoginRequest;
}
public function fetchDatas($login)
{
try {
$dbh = $this->getConnection();
// forge de la requête
$request = $this->sqlLoginRequest->getRequestScope();
// Préparation de la requête
$query = $dbh->prepare($request);
$query->execute([$this->sqlLoginRequest->getLoginColumnName() => $login]);
$datas = $query->fetch(PDO::FETCH_ASSOC);
} catch (PDOException $e) {
\Sentry\captureException($e);
throw new PDOException();
}
return $datas;
}
/**
* @param mixed $login
*
* @return bool
*/
public function fetchPassword($login)
{
try {
$dbh = $this->getConnection();
$request = $this->sqlLoginRequest->getRequestPassword();
$query = $dbh->prepare($request);
$query->execute([$this->sqlLoginRequest->getLoginColumnName() => $login]);
$password = $query->fetch(PDO::FETCH_ASSOC);
} catch (PDOException $e) {
\Sentry\captureException($e);
throw new PDOException();
}
if ($password) {
return [
$password[$this->sqlLoginRequest->getPasswordColumnName()],
isset($password[$this->sqlLoginRequest->getSaltColumnName()]) ? $password[$this->sqlLoginRequest->getSaltColumnName()] : null,
];
}
return false;
}
public function getConnection()
{
// Appel du singleton
$sqlLogin = SQLLoginConnect::getInstance();
// Connection bdd
return $sqlLogin->connect($this->sqlLoginRequest->getDatabaseDsn(), $this->sqlLoginRequest->getDbUser(), $this->sqlLoginRequest->getDbPassword());
}
}