feat: add service token rename command (#40)
* docs: preserve original issue 5 body * feat: add service token rename command * test: normalize rich option errors
This commit is contained in:
@@ -35,6 +35,12 @@ class IssuedServiceToken:
|
||||
auth_token: AuthToken
|
||||
|
||||
|
||||
@dataclass
|
||||
class RenamedServiceToken:
|
||||
auth_token: AuthToken
|
||||
changed: bool
|
||||
|
||||
|
||||
def get_auth_service_repository(settings: Settings = Depends(get_settings)) -> PortfolioRepository:
|
||||
return get_portfolio_repository_from_settings(settings)
|
||||
|
||||
@@ -130,6 +136,19 @@ class AuthService:
|
||||
raw_token, auth_token = self._repository.rotate_service_token(name)
|
||||
return IssuedServiceToken(token=raw_token, auth_token=auth_token)
|
||||
|
||||
def rename_service_token(self, name: str, new_name: str) -> RenamedServiceToken:
|
||||
if name == new_name:
|
||||
existing = self._repository.get_service_token_by_name(name)
|
||||
if existing is None:
|
||||
raise ValueError(f"서비스 토큰을 찾을 수 없습니다: {name}")
|
||||
return RenamedServiceToken(auth_token=existing, changed=False)
|
||||
|
||||
try:
|
||||
renamed = self._repository.rename_service_token(name, new_name)
|
||||
except psycopg.errors.UniqueViolation as exc:
|
||||
raise ValueError(f"이미 존재하는 서비스 토큰 이름입니다: {new_name}") from exc
|
||||
return RenamedServiceToken(auth_token=renamed, changed=True)
|
||||
|
||||
def rebind_service_token(self, name: str, daemon_id: str) -> tuple[str | None, AuthToken]:
|
||||
existing = self._repository.get_service_token_by_name(name)
|
||||
if existing is None:
|
||||
|
||||
Reference in New Issue
Block a user