This commit is contained in:
retoor 2025-04-08 05:01:27 +02:00
parent d71d5da6bc
commit d2e2bb8117

View File

@ -0,0 +1,34 @@
import pathlib
import json
from snek.system import security
from snek.system.service import BaseService
class UserPropertyService(BaseService):
mapper_name = "user_property"
async def set(self, user_uid, name, value):
prop = await self.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)
async def get(self, user_uid, name):
try:
return json.loads((await self.get(user_uid=user_uid, name=name)).value)
except:
return None
async def search(self, query, **kwargs):
query = query.strip().lower()
if not query:
raise []
results = []
async for result in self.find(name={"ilike": "%" + query + "%"}, **kwargs):
results.append(result)
return results