From 97587505f0712436356b6316d3913219ab178794 Mon Sep 17 00:00:00 2001 From: itqop Date: Sat, 18 Oct 2025 20:31:02 +0300 Subject: [PATCH] release: fixe release --- src/hubgw/repositories/luckperms_repo.py | 27 ++++++++++++++---------- 1 file changed, 16 insertions(+), 11 deletions(-) diff --git a/src/hubgw/repositories/luckperms_repo.py b/src/hubgw/repositories/luckperms_repo.py index 1d3496b..b56971a 100644 --- a/src/hubgw/repositories/luckperms_repo.py +++ b/src/hubgw/repositories/luckperms_repo.py @@ -2,7 +2,7 @@ from typing import List, Optional -from sqlalchemy import select +from sqlalchemy import insert, select from sqlalchemy.ext.asyncio import AsyncSession from hubgw.models.luckperms import (LuckPermsGroup, LuckPermsPlayer, @@ -42,13 +42,18 @@ class LuckPermsRepository: return list(result.scalars().all()) async def create_player( - self, uuid: str, username: str, primary_group: str - ) -> LuckPermsPlayer: - """Create a new player in LuckPerms.""" - player = LuckPermsPlayer( - uuid=uuid, username=username, primary_group=primary_group - ) - self.session.add(player) - await self.session.commit() - await self.session.refresh(player) - return player + self, uuid: str, username: str, primary_group: str + ) -> LuckPermsPlayer: + """Create a new player in LuckPerms or update existing.""" + stmt = insert(LuckPermsPlayer).values( + uuid=uuid, + username=username, + primary_group=primary_group + ).on_conflict_do_update( + index_elements=['uuid'], + set_={'username': username} + ).returning(LuckPermsPlayer) + + result = await self.session.execute(stmt) + await self.session.commit() + return result.scalar_one()