This commit is contained in:
Juan Pablo Vial
2024-04-02 19:04:26 -03:00
parent 84a2fbd119
commit 7af9cafdb6
2 changed files with 19 additions and 8 deletions

View File

@ -16,7 +16,7 @@ class Login extends Ideal\Repository
} }
public function create(?array $data = null): Define\Model public function create(?array $data = null): Model\Login
{ {
$map = (new Implement\Repository\MapperParser(['selector', 'token'])) $map = (new Implement\Repository\MapperParser(['selector', 'token']))
->register('user_id', (new Implement\Repository\Mapper()) ->register('user_id', (new Implement\Repository\Mapper())
@ -29,7 +29,7 @@ class Login extends Ideal\Repository
return $this->parseData(new Model\Login(), $data, $map); return $this->parseData(new Model\Login(), $data, $map);
} }
public function save(Define\Model $model): Define\Model public function save(Define\Model $model): Model\Login
{ {
$model->id = $this->saveNew( $model->id = $this->saveNew(
['user_id', 'selector', 'token', 'time', 'status'], ['user_id', 'selector', 'token', 'time', 'status'],
@ -37,29 +37,41 @@ class Login extends Ideal\Repository
return $model; return $model;
} }
public function edit(Define\Model $model, array $new_data): Define\Model public function edit(Define\Model $model, array $new_data): Model\Login
{ {
return $this->update($model, ['user_id', 'selector', 'token', 'time', 'status'], $new_data); return $this->update($model, ['user_id', 'selector', 'token', 'time', 'status'], $new_data);
} }
public function fetchByUser(int $user_id): array public function fetchByUser(int $user_id): array
{ {
$query = "SELECT * FROM `{$this->getTable()}` WHERE `user_id` = ?"; $query = $this->connection->getQueryBuilder()
->select()
->from($this->getTable())
->where('user_id = ?');
return $this->fetchMany($query, [$user_id]); return $this->fetchMany($query, [$user_id]);
} }
public function fetchActiveByUser(int $user_id): Model\Login public function fetchActiveByUser(int $user_id): Model\Login
{ {
$query = "SELECT * FROM `{$this->getTable()}` WHERE `user_id` = ? AND `status` = 1"; $query = $this->connection->getQueryBuilder()
->select()
->from($this->getTable())
->where('user_id = ? AND `status` = 1');
return $this->fetchOne($query, [$user_id]); return $this->fetchOne($query, [$user_id]);
} }
public function fetchBySelectorAndToken(string $selector, string $token): Model\Login public function fetchBySelectorAndToken(string $selector, string $token): Model\Login
{ {
$query = "SELECT * FROM `{$this->getTable()}` WHERE `selector` = ? AND `token` = ?"; $query = $this->connection->getQueryBuilder()
->select()
->from($this->getTable())
->where('selector = ? AND token = ?');
return $this->fetchOne($query, [$selector, $token]); return $this->fetchOne($query, [$selector, $token]);
} }
public function fetchActiveBySelector(string $selector): Model\Login public function fetchActiveBySelector(string $selector): Model\Login
{ {
$query = "SELECT * FROM `{$this->getTable()}` WHERE `selector` = ? AND `status` = 1"; $query = $this->connection->getQueryBuilder()
->select()
->from($this->getTable())
->where('selector = ? AND `status` = 1');
return $this->fetchOne($query, [$selector]); return $this->fetchOne($query, [$selector]);
} }
} }

View File

@ -9,7 +9,6 @@ use PDOException;
use Incoviba\Common\Implement\Exception\EmptyResult; use Incoviba\Common\Implement\Exception\EmptyResult;
use Incoviba\Repository; use Incoviba\Repository;
use Incoviba\Model; use Incoviba\Model;
use PhpParser\Node\Expr\AssignOp\Mod;
use function random_bytes; use function random_bytes;
use function password_hash; use function password_hash;
use function setcookie; use function setcookie;