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