diff --git a/src/snek/service/user_property.py b/src/snek/service/user_property.py index 5f607ad..49a120d 100644 --- a/src/snek/service/user_property.py +++ b/src/snek/service/user_property.py @@ -7,15 +7,15 @@ class UserPropertyService(BaseService): mapper_name = "user_property" async def set(self, user_uid, name, value): - prop = await super().get(user_uid=user_uid, name=name) - if not prop: - prop = await self.new() - prop["user_uid"] = user_uid - prop["name"] = name - - prop["value"] = json.dumps(value, default=str) - return await self.save(prop) - + self.mapper.db["user_property"].upsert( + { + "user_uid": user_uid, + "name": name, + "value": json.dumps(value, default=str) + }, + ["user_uid", "name"] + ) + async def get(self, user_uid, name): try: return json.loads((await super().get(user_uid=user_uid, name=name))["value"])