Files
lucent-laravel/src/AccessKey/AccessKeyService.php
T
2023-10-02 23:10:49 +03:00

41 lines
912 B
PHP

<?php
namespace Lucent\AccessKey;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Str;
use Lucent\Id\Id;
use Lucent\LucentException;
use Lucent\Member\Role;
class AccessKeyService
{
public static function create(string $name, string $role): AccessKey
{
$showOnceToken = Str::random(48);
$accessKey = new AccessKey(
_id: Id::new(),
name: $name,
token: hash("sha256", $showOnceToken),
role: Role::from($role),
showOnceToken: $showOnceToken,
);
AccessKeyRepo::add($accessKey);
return $accessKey;
}
public static function findByToken(string $token): ?AccessKey
{
$hashedToken = hash("sha256", $token);
return AccessKeyRepo::findByToken($hashedToken);
}
public static function remove(string $id): void
{
AccessKeyRepo::remove($id);
}
}