|
|
|
<?php
|
|
|
|
|
|
|
|
declare(strict_types=1);
|
|
|
|
|
|
|
|
namespace app\Repositories;
|
|
|
|
|
|
|
|
|
|
|
|
use app\core\Repository;
|
|
|
|
|
|
|
|
// Repository class with static methods related to authentication
|
|
|
|
class Usuario extends Repository
|
|
|
|
{
|
|
|
|
//protected static string $table = 'pbx_usuarios';
|
|
|
|
public static function getUser(string $email): array|bool
|
|
|
|
{
|
|
|
|
$query = "SELECT id, nome, apelido, email, senha
|
|
|
|
FROM pbx_usuarios
|
|
|
|
WHERE email = :email";
|
|
|
|
|
|
|
|
$data = ["email" => $email];
|
|
|
|
|
|
|
|
return self::query($query, $data, 'one');
|
|
|
|
}
|
|
|
|
|
|
|
|
public static function getTokenByUserId(string $id): array|bool
|
|
|
|
{
|
|
|
|
$query = "SELECT * FROM pbx_tokens WHERE id_usuario = :id";
|
|
|
|
$data = ["id" => $id];
|
|
|
|
return self::query($query, $data, 'one');
|
|
|
|
}
|
|
|
|
|
|
|
|
public static function deleteTokenById(string $id): int|bool
|
|
|
|
{
|
|
|
|
if (empty($id)) {
|
|
|
|
return ["status" => "error", "mensage" => "ERROR! Delete method must have parameters!"];
|
|
|
|
}
|
|
|
|
|
|
|
|
$query = "DELETE from pbx_tokens WHERE id = :id";
|
|
|
|
$data = ["id" => $id];
|
|
|
|
return self::query($query, $data, 'count');
|
|
|
|
}
|
|
|
|
|
|
|
|
public static function createToken(array $data): int|bool
|
|
|
|
{
|
|
|
|
$query = "INSERT INTO pbx_tokens (" . implode(', ', array_keys($data)) . ")
|
|
|
|
VALUES (:" . implode(',:', array_keys($data)) . ')';
|
|
|
|
return self::query($query, $data, 'count');
|
|
|
|
}
|
|
|
|
|
|
|
|
public static function getOrgIdByUserId(string $userId): array
|
|
|
|
{
|
|
|
|
$query = "SELECT id_organizacao FROM pbx_organizacao_usuarios WHERE id_usuario = :user_id";
|
|
|
|
$data = ["user_id" => $userId];
|
|
|
|
return self::query($query, $data, 'one');
|
|
|
|
}
|
|
|
|
|
|
|
|
public static function verifyTokenByOrg(string $token, string $orgId)
|
|
|
|
{
|
|
|
|
$query = "SELECT pu.id as user_id, t.id as token_id, pou.id_organizacao, t.token, t.expired_at
|
|
|
|
FROM pbx_usuarios pu
|
|
|
|
INNER JOIN pbx_tokens t ON t.id_usuario = pu.id
|
|
|
|
INNER JOIN pbx_organizacao_usuarios pou ON pou.id_usuario = pu.id
|
|
|
|
WHERE t.token = :token AND id_organizacao = :org_id;";
|
|
|
|
$params = ["token" => $token, "org_id" => $orgId];
|
|
|
|
|
|
|
|
return self::query($query, $params, "one");
|
|
|
|
}
|
|
|
|
}
|