openvk/Web/Models/Repositories/APITokens.php

27 lines
732 B
PHP
Raw Permalink Normal View History

2020-08-12 14:36:18 +03:00
<?php declare(strict_types=1);
namespace openvk\Web\Models\Repositories;
use openvk\Web\Models\Entities\APIToken;
class APITokens extends Repository
{
protected $tableName = "api_tokens";
protected $modelName = "APIToken";
function getByCode(string $code, bool $withRevoked = false): ?APIToken
{
$parts = explode("-", $code);
$id = $parts[0];
$secret = implode("", array_slice($parts, 1, 9));
$token = $this->get((int) $id);
if(!$token)
return NULL;
else if($token->getSecret() !== $secret)
return NULL;
else if($token->isRevoked() && !$withRevoked)
return NULL;
return $token;
}
}