Files
SMANAGE/_api_backup/TempLateAPI/GERP/API/FormAPI/RoleSearch.api
T
2026-06-16 11:55:14 +08:00

48 lines
1.2 KiB
Plaintext

from PDAPI import *
import TempLateAPI.GERP.API.FormAPI.FormData as FormData
from Utils.Models import GERPRole
def fuzzy_search_roles(keyword, limit=5):
if not keyword or len(keyword.strip()) < 1:
return []
pattern = f"%{keyword.strip()}%"
roles = GERPRole.query.filter(
GERPRole.RoleName.like(pattern)
).limit(limit).all()
results = []
for role in roles:
results.append({
"RoleUUID": FormData.GetTable("Role").KeyToUUIDConversion("RoleUUID", role.RoleUUID, str),
"RoleName": role.RoleName,
"RoleType": role.RoleType,
"RoleStatus": role.RoleStatus,
"MatchedBy": "name",
})
return results
__metadata__ = {
"route": "{DEFAULT_ROUTE}",
"methods": ["GET"],
"blueprint": "GERP",
"permission": 1.0,
"attributes": [],
"limit": "10 per second"
}
def HandleRequest(_CleanedData):
keyword = flask.request.args.get("keyword", "").strip()
limit = min(max(int(flask.request.args.get("limit", 5)), 1), 20)
results = fuzzy_search_roles(keyword, limit)
return {
"code": 0,
"data": results,
"total": len(results)
}, 200