Update.
This commit is contained in:
parent
d71d5da6bc
commit
d2e2bb8117
34
src/snek/service/user_property.py
Normal file
34
src/snek/service/user_property.py
Normal 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
|
||||
|
Loading…
Reference in New Issue
Block a user